1. 程式人生 > >Redis客戶端連線以及持久化資料(三)

Redis客戶端連線以及持久化資料(三)

0、Redis目錄結構


      1)Redis介紹及部署在CentOS7上(一)

      2)Redis指令與資料結構(二)

      3)Redis客戶端連線以及持久化資料(三)

      4)Redis高可用之主從複製實踐(四)

      5)Redis高可用之哨兵模式Sentinel配置與啟動(五)

      6)Redis高可用之叢集配置(六)

 

一、介紹


上篇文章我們講解了Redis的結構與指令,其實很簡單,我也沒有過多的講解,這次我們講解一下Redis連線客戶端以及持久化方案。

1、上文中我們針對redis的資料操作都是在伺服器中使用命令執行的,當然這個也是非常安全的處理方式,那麼在開發的階段為了方便我們可是使用視覺化介面連線redis,

比如RedisDesktopManager 這個軟體等,方便我們快速的操作資料,下面的介紹也是依據這個軟體進行的。

2、 針對與Redis 大家肯定也知道,redis的資料是儲存在記憶體的,但是一旦把redis關閉則資料就會丟失,為了防止資料丟失,那麼我就需要資料持久化到硬碟上,在此提供了兩種持久化方案:

第一種是 RDB 快照的形式,第二種是 AOF 類似日誌追加的方式。

 

那麼我就快速的帶大家瞭解一下

 

二、Redis客戶端連線


1、前提說明一下:此方案只允許測試的時候配置,其他情況禁止使用

2、我們進入Redis的資料夾中,新建一個redis配置檔案,檔名為: redis.custom.conf,然後在裡面如下內容:

配置中的bind 代表繫結 本伺服器的IP,在生產環境中禁止使用 0.0.0.0 ,此IP代表伺服器內所有的IP都可以被外網進行連線;在生產環境中我們推薦使用繫結具體的內網IP,如我的IP為:192.168.250.132

daemonize yes
port 
6666 requirepass 123 logfile ./redislog_louie.log dir ./ bind 192.168.250.132 127.0.0.1 # 0.0.0.0

 3、此處我的redis埠為6666,如果大家沒有關閉防火牆,則需要在防火牆中開啟埠通過,允許埠6666的通過。

配置完成後我們儲存然後啟動。

./src/redis-server redis.custom.conf

然後我們使用 視覺化工具連線一下我們的redis,發現連線成功,那麼我就可以直接進行增刪改查的資料操作啦。

 操作資料

 

 redis客戶端已說明完,下面就是最重要的redis持久化。

三、Redis持久化方案


1、redis持久化有兩種方案,一種是RDB,一種是AOF

2、RDB資料持久化

 1)說明:RDB是整體快照備份一樣,就像我們系統進行映象的備份這種快照處理,當然看到這個大家應該會有一個問題,這樣備份效率相對比較慢,而且一次備份資料比較大,所以官方也不推薦使用此方案進行資料持久化,但我們還得結合實際情況使用,像

redis主從複製的原理底層資料就是通過RDB。

  2)觸發RDB的方式有兩種:

  save 同步儲存

  bgsave 非同步儲存

話不多說我們配置一下RDB

daemonize yes
port 6666
requirepass 123
logfile ./redislog_louie.log
dir ./
bind 192.168.250.132 127.0.0.1 #  0.0.0.0

save 20 1  # 自動儲存策略,20秒內有一個key發生變化就自動儲存
dbfilename rdb_louie.rdb  #  rdb檔名
stop-writes-on-bgsave-error yes #  發生錯誤中斷寫入,建議開啟
rdbcompression yes  # 資料檔案壓縮,建議開啟
rdbchecksum yes # 開啟crc64錯誤校驗,建議開啟

儲存,執行一下我們的redis,就可以看到我們產生的rdb 檔案了。

3、AOF資料持久化(推薦方案)

說明:日誌追加資料持久化,即在原先的資料基礎上進行追加,而不是完全覆寫,這樣效率高。

注:如果RDB與AOF同時存在的情況下,redis預設優先使用AOF進行資料恢復。

 

AOF的配置如下:

daemonize yes
port 6666
requirepass 123
logfile ./redislog_louie.log
dir ./
bind 192.168.250.132 127.0.0.1 # 0.0.0.0

appendonly yes  # 開啟aof
appendfilename aof_louie.aof  # aof 日誌檔名
appendfsync everysec  #  每秒記錄一次日誌,建議everysec
no-appendfsync-on-rewrite yes  # 重寫過程中是否向日志文件寫入,yes 代表rewrite過程中,不向aof檔案中追加資訊,rewrite結束後再寫入,no 代表rewrite執行的同時,也向aof追加資訊
auto-aof-rewrite-percentage 100 # 觸發重寫檔案增長百分比 預設100%
auto-aof-rewrite-min-size 64mb  # 觸發重寫最小aof檔案尺寸

看到上面的配置,大家會有疑問,為什麼會有 重寫,主要是因為要壓縮資料,產生的檔案更小,防止同樣的相同命令佔用空間,比如如下:用最簡短的命令來操作資料

重寫說明

 

至此,資料持久化已經都介紹完後 

 

四、總結


redis的持久化方案建議採用AOF,高效便捷。下一篇文章我們就要進行redis高可用的介紹。

如果針對上面有任何問題,歡迎留言諮詢。

 

asp.net core 交流群:787464275 歡迎加群交流
如果您認為這篇文章還不錯或者有所收穫,您可以點選右下角的【推薦】按鈕精神支援,因為這種支援是我繼續寫作,分享的最大動力!

作者:LouieGuo
宣告:原創部落格請在轉載時保留原文連結或者在文章開頭加上本人部落格地址,如發現錯誤,歡迎批評指正。凡是轉載於本人的文章,不能設定打賞功能,如有特殊需求請與本人聯絡!

微信公眾號:歡迎關注                                                 QQ技術交流群: 歡迎加群