redis 主从搭建
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 主从搭建的主要内容,如果未能解决你的问题,请参考以下文章
Redis主从与哨兵架构详解 Redis主从架构 如何在同一台机器搭建主从架构 Redis主从工作原理 数据部分复制 Jedis使用 Redis的管道(Pipeline) Redis Lua脚本(代码