1. 程式人生 > >redis 主從搭建

redis 主從搭建

redis 主從搭建

環境:
redis_M 172.16.0.137

redis_S 172.16.0.138

系統:centos6.7

1、在redis_M 172.16.0.137 、redis_S 172.16.0.138搭建單機redis

2、修改配置參數redis.conf

主要修改4個參數:

port

logfile

slaveof (只在從庫修改)

pidfile

daemonize(配置以daemon方式運行)

------------------------------------------------------------------------------------------

修改redis_M 172.16.0.137 redis.conf:

port 6379

pidfile /var/run/redis.pid

# slaveof <masterip> <masterport>

logfile "/var/log/redis/redis.log"

daemonize yes

修改redis_S 172.16.0.138 redis.conf:

port 6380

pidfile /var/run/redis.pid

slaveof 172.16.0.137 6379

logfile "/var/log/redis/redis.log"

daemonize yes

----------------------------------------------------------------------------------------------

設置主從同步

1、在redis主服務器上的redis.conf中修改bind字段,將

bind 127.0.0.1

修改為

bind 0.0.0.0

又或者直接註釋掉bind字段

# bind 127.0.0.1

2、設置主從同步密碼 在配置文件redis.conf修改

主從服務器設置密碼:

requirepass some34QA

主從從服務器配置添加上密碼:

masterauth some34QA

開啟從服務器只讀模式(默認開啟)

slave-read-only yes

3、設置主從持久化:RDB快照持久化 修改redis.conf

mkdir /var/data/redis -p

save 900 1

save 300 10

save 60 10000

stop-writes-on-bgsave-error yes

rdbcompression yes (壓縮)

rdbchecksum yes

dbfilename dump.rdb

dir /var/data/redis

http://www.voidcn.com/blog/aitangyong/article/p-6114064.html

1. redis調用系統函數fork() ,創建一個子進程。】

【2.子進程將數據集寫入到一個臨時 RDB 文件中。】

【3.當子進程完成對臨時RDB文件的寫入時,redis 用新的臨時RDB 文件替換原來的RDB 文件,並刪除舊的 RDB 文件。

4、設置主從持久化:AOF持久化 修改redis.conf

appendonly yes

appendfilename "appendonly.aof"

appendfsync everysec

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

http://www.jianshu.com/p/bedec93e5a7b

AOF和RDB對比:

AOF更安全,可將數據及時同步到文件中,但需要較多的磁盤IO,AOF文件尺寸較大,文件內容恢復相對較慢, 也更完整。

RDB持久化,安全性較差,它是正常時期數據備份及 master-slave數據同步的最佳手段,文件尺寸較小,恢復數度較快。

最大內存配置以及內存回收策略:(安裝具體業務需要調整,此次為做調整)

maxmemory 12G (建議設置服務器內存的75%) 當內存達到限制時,Redis 具體的回收策略是通過 maxmemory-policy 配置項配置的。

maxmemory 0 (沒有限制,當存儲數據達到限制時,Redis 會根據情形選擇不同策略,或者返回errors(這樣會導致浪費更多的內存),或者清除一些舊數據回收內存來添加新數據

maxmemory-policy 配置項:

noenviction:不清除數據,只是返回錯誤,這樣會導致浪費掉更多的內存,對大多數寫命令(DEL 命令和其他的少數命令例外)

allkeys-lru:從所有的數據集(server.db[i].dict)中挑選最近最少使用的數據淘汰,以供新數據使用

volatile-lru:從已設置過期時間的數據集(server.db[i].expires)中挑選最近最少使用的數據淘汰,以供新數據使用

allkeys-random:從所有數據集(server.db[i].dict)中任意選擇數據淘汰,以供新數據使用

volatile-random:從已設置過期時間的數據集(server.db[i].expires)中任意選擇數據淘汰,以供新數據使用

volatile-ttl:從已設置過期時間的數據集(server.db[i].expires)中挑選將要過期的數據淘汰,以供新數據使用

-----------------------------------------------------------------------------------------------------------------------------------------

redis雙節點主從切換:



































本文出自 “arvin_0213” 博客,請務必保留此出處http://arvin0213.blog.51cto.com/2455782/1930029

redis 主從搭建