redis學習6---主從環境配置

1、編譯安裝

過程省略


2、主從配置

vi /data/usr/redis-4.0.11/conf/redis.conf

master:

bind 127.0.0.1 192.168.121.121

daemonize yes

logfile "/data/usr/redis-4.0.11/logs/redis.log"

pidfile /data/usr/redis-4.0.11/run/redis_6379.pid

dir /data/usr/redis-4.0.11/data

requirepass Redis2019!


slave:

bind 127.0.0.1 192.168.121.122

daemonize yes

logfile "/data/usr/redis-4.0.11/logs/redis.log"

pidfile /data/usr/redis-4.0.11/run/redis_6379.pid

dir /data/usr/redis-4.0.11/data

requirepass Redis2019!

masterauth Redis2019!

slaveof 192.168.121.121 6379


3、查看主從狀態

master:

redis-cli -a Redis2019!

Warning: Using a password with '-a' option on the command line interface may not be safe.

127.0.0.1:6379> INFO reolication

127.0.0.1:6379> INFo replication

# Replication

role:master

connected_slaves:1

slave0:ip=192.168.121.122,port=6379,state=online,offset=24486,lag=1

master_replid:7ad1fd1b943f347c73970ccf1e50a51f9e17ad2d

master_replid2:0000000000000000000000000000000000000000

master_repl_offset:24486

second_repl_offset:-1

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:1

repl_backlog_histlen:24486


slave:

redis-cli -h 192.168.121.122 -p 6379 -a Redis2019!

Warning: Using a password with '-a' option on the command line interface may not be safe.

192.168.121.122:6379> INFO replication

# Replication

role:slave

master_host:192.168.121.121

master_port:6379

master_link_status:up

master_last_io_seconds_ago:7

master_sync_in_progress:0

slave_repl_offset:24570

slave_priority:100

slave_read_only:1

connected_slaves:0

master_replid:7ad1fd1b943f347c73970ccf1e50a51f9e17ad2d

master_replid2:0000000000000000000000000000000000000000

master_repl_offset:24570

second_repl_offset:-1

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:1

repl_backlog_histlen:24570


4、主從模式及持久化

redis的主從模式是異步模式,slave節點異步的從master節點複製數據,master節點提供讀寫,slave節點只提供讀服務,此爲默認配置,可以修改配置文件的 slave-read-only 參數做出改變,把yes替換爲no,即是把slave節點的只讀限制打開,master節點可以有多個slave節點。


快照持久化,即RDB文件持久化,是默認的持久化方式。按照一定的策略週期性的將數據保存到磁盤,對應產生的數據文件爲dump.rdb,默認該文件保存在啓動服務時所在目錄下。redis藉助fork命令的copy on write機制,在生成快照時,將當前進程fork一個子進程,然後子進程循環執行所有的命令,將數據寫入,稱爲RDB文件。Client可以使用save或者dbsave命令通知redis做一次快照持久化。save操作是主線程中保存快照的,由於redis是用一個主線程來處理所有client的請求,這種方式會阻塞所有client請求,所以不推薦使用save操作。另外,每次快照持久化都是將內存數據完整寫入到磁盤一次,並不是增量的,如果要同步的數據量大的話,且寫操作比較多,必然會使得磁盤產生大量的io操作,有可能會嚴重影響磁盤性能。


基於快照文件的主從同步:

slave第一次向master發出同步請求,master首先dump出rdb文件


持久化的默認設置:

save 900 1 # 900秒後至少1個key有變動save

save 300 10 # 300秒後至少10個key有變動save

save 60 10000 # 60秒後至少10000個key有變動save


stop-writes-on-bgsave-error yes # 錯誤處理,默認情況下,如果redis在後臺生成快照的時候失敗,那麼就會停止接收數據,目的是讓用戶能知道數據沒有持久化成功。


rdbcompression yes # 數據壓縮,默認會採用LZF對數據進行壓縮,如果想節省CPU性能,可以把壓縮功能禁用,但是數據集就會比沒壓縮的大。


rdbchecksum yes # 數據校驗,一個CRC64的校驗放在文件末尾,用來保證文件的完整性,但是在保存和加載文件時會損失一定性能(10%左右)


dbfilename dump.rdb # 持久化文件


dir ./ # 文件保存目錄,在哪裏執行啓動命令,文件就保存在哪裏


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章