Redis主备安装
2019獨角獸企業重金招聘Python工程師標準>>>
采用主備部署方式,Master不做數據持久化操作,僅Slave做數據持久化操作,Slave采用AOF二進制日志文件作為持久化方案,默認每秒持久化一次。
- 安裝
1. 下載源代碼文件redis-2.8.19.tar.gz?
2. 解壓tar -xzvf redis-2.8.19.tar.gz
3. 進入目錄 cd redis-2.8.19
4. 編譯make
5. 安裝 make install
6. 創建數據目錄mkdir data
7. 創建日志目錄 mkdir logs
主備機器上安裝一樣,略。
- 配置
Master機器redis.conf配置
| 屬性 | 值 | 描述 |
| daemonize | yes | 啟動進程為后臺進程 |
| port | 6379 | 端口,6379為默認端口 |
| logfile | "/opt/oracle/redis-2.8.19/logs/redis.log" | 日志文件 |
| databases | 1 | 數據庫個數 |
| dbfilename | "dump_master.rdb" | 數據dump文件 |
| dir | "/opt/oracle/redis-2.8.19/data" | 數據文件所在目錄 |
| maxclients | 10000 | 最大連接數 |
| #save 900 1 | 不打開此屬性 | 不打開快照持久化方式(Master不做持久化) |
| #save 300 10 | 不打開此屬性 | 不打開快照持久化方式(Master不做持久化) |
| #save 60 10000 | 不打開此屬性 | 不打開快照持久化方式(Master不做持久化) |
| appendonly | no | 不打開二進制日志文件(Master不做持久化) |
| maxmemory | 8gb | 物理內存的一半 # 1k => 1000 bytes # 1kb => 1024 bytes # 1m => 1000000 bytes # 1mb => 1024*1024 bytes # 1g => 1000000000 bytes # 1gb => 1024*1024*1024 bytes |
| maxmemory-policy | noeviction | 內存不夠用時,寫時返回error,讀取操作正常 |
Slave機器redis.conf配置
| 屬性 | 值 | 描述 |
| daemonize | yes | 啟動進程為后臺進程 |
| port | 6379 | 端口,6379為默認端口 |
| logfile | "/opt/oracle/redis-2.8.19/logs/redis.log" | 日志文件 |
| databases | 1 | 數據庫個數 |
| dbfilename | "dump_master.rdb" | 數據dump文件 |
| dir | "/opt/oracle/redis-2.8.19/data" | 數據文件所在目錄 |
| maxclients | 10000 | 最大連接數 |
| #save 900 1 | 不打開此屬性 | 不打開快照方式持久化方式 |
| #save 300 10 | 不打開此屬性 | 不打開快照方式持久化方式 |
| #save 60 10000 | 不打開此屬性 | 不打開快照方式持久化方式 |
| slaveof <master ip> <port> | slaveof 192.168.126.137 6379 | IP和端口為Master的IP和端口 |
| appendonly | yes | 打開二進制日志文件作為持久化方式 |
| appendfsync | everysec | 每間隔1秒鐘持久化一次數據 |
| appendfilename | "appendonly_slave.aof" | 二進制日志文件名稱 |
| maxmemory | 8gb | 物理內存的一半 |
| maxmemory-policy | noeviction | ? |
Master機器上sentinel.conf配置
| 屬性 | 值 | 描述 |
| port | 16379 | 監視哨端口 |
| daemonize | yes | 啟動的進程為后臺進程 |
| logfile | "/opt/oracle/redis-2.8.19/logs/sentinel.log" | 日志文件 |
| sentinel monitor <master-name> <ip> <redis-port> <quorum> | sentinel monitor mymaster 127.0.0.1 6379 1 | IP和端口為Master的IP地址和端口,mymaster為集群名稱,可以修改為想要的名稱,客戶端訪問時需要這個名稱 |
| sentinel down-after-milliseconds <master-name> 30000 | sentinel down-after-milliseconds mymaster 30000 | master-name為一個統一的集群名稱 |
| sentinel failover-timeout <master-name> 180000 | sentinel failover-timeout mymaster 180000 | |
| sentinel parallel-syncs <master-name> <numslaves> | sentinel parallel-syncs mymaster 1 |
Slave機器上sentinel配置
Slave機器上的sentinel.conf配置同Master機器上的sentinel.conf配置一樣,配置同上。
- 啟動
| 命令 | 描述 | 備注 |
| redis-server redis.conf | 啟動Master主機 | ? |
| redis-server redis.conf | 啟動Slave主機 | ? |
| redis-sentinel sentinel.conf | 啟動Master主機上的監視哨 | 監視哨進程可單獨部署在另外的機器上,只有在過半數的監視哨存活的情況下才能進行主備切換。 |
| redis-sentinel sentinel.conf | 啟動Slave主機上的監視哨 |
- 驗證
1. 進入master控制臺 redis-cli –p 6379
2. 設置一個值 set foo car
3. 取出這個值 get foo
4. 進入slave控制臺 redis-cli –p 6379
5. 取出這個值 get foo
如果主備機器上均能取出這個值,則安裝部署已經成功。
- Jedis使用
轉載于:https://my.oschina.net/u/1274122/blog/402276
總結
- 上一篇: 5个很牛的黑科技网站分享
- 下一篇: Packet for query is