redis主从备份
redis主从备份,默认是读写分离的,master用于写,slave用于读。slave的写只能用于存储一些短暂状态的变量,应为在下次同步时,会被移除。
配置主从备份原则:配从不配主,既只需修改从库配置文件。可参考官网介绍:https://redis.io/topics/replication
配置主从备份,修改从库配置文件,添加如下指令:
slaveof <masterip> <masterport>
若主库需认证,还需添加如下指令:
masterauth <password>
通常还需修改如下配置,防止命名冲突:
#redis监听端口号 port 6380 #pid文件 pidfile /var/run/redis_6380.pid #日志文件 logfile "6380.log" #rbd备份文件 dbfilename dump6380.rdb #aof备份文件 appendfilename "appendonly6380.aof"
此处以一主二从简单介绍下相关步骤:
1、在redis安装目录下创建一目录“conf”,用于存放redis配置文件
mkdir conf
2、拷贝redis.conf到conf目录下,三个redis实例一人一份
cp redis.conf conf/redis_6379.conf cp redis.conf conf/redis_6380.conf cp redis.conf conf/redis_6381.conf
安装之前介绍,修改个配置文件相关参数(此处6379为主库,不需添加slaveof指令, 其他两个配置文件 需添加 :slaveof 127.0.0.1 6379)。
3、分别启动三个redis实例:
./redis-server ../conf/redis_6379.conf ./redis-server ../conf/redis_6380.conf ./redis-server ../conf/redis_6381.conf
到此主从配置完成,可通过客户端程序:redis-cli链接上redis服务器,执行:info replication 查看服务器主从状态。
按照上述配置的主从,实际工作中很少使用,因为主库出异常后,从库将继续保持为slave状态,则会影响程序正常工作。
哨兵模式(反客为主):既当master出异常后,进行自动投票,在从库中选择出一个做为master提供服务(当之前的master恢复正常后,将作为该master的slave),其他的从库将作为新选出的master的slave,这样便保证了,mater异常后,不至于影响程序的正常执行。相关配置可参照官网介绍:https://redis.io/topics/sentinel
哨兵模式虽然解决高可用的问题,但未解决数据分区的问题
从redis3.0开始,新增了redis cluster(集群)新功能,这样便保证了redis的高可用,同时也解决了数据的分区问题,相关介绍可参考官网介绍:https://redis.io/topics/cluster-tutorial