一、介紹
之前我們講解了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進行數據恢復。
Java學習交流圈:874811168 歡迎入駐交流。
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高可用的介紹。
如果針對上面有任何問題,歡迎留言諮詢。