主从复制:配从不配主
创建多个redis实例,和多个配置文件。再配置文件中首行添加include /存放配置文件的目录 用力引入完整的conf文件,接下来就只需要添加我们需要修改的几行命令即可。
daemonize yes 以守护线程后台启动
pidfile /var/run/redis_6379.pid
port 6379
log文件名字
Dump.rdb文件名字
appendonly 若是开启,换掉名字。或者直接no关闭aof日志文件
使用info replication可以查看主从复制信息,因为还没有设置,所以都是master
使用slaveof ip port 指定成为指定ip和端口的从服务器
主从复制原理:主机宕机后,所有的从机原地待命。从机不具有写的权限。当一个从机使用salveof 成为一个主机的从机后,就会给主机发送一个sync同步指令,这时主机会进行rdb持久化,将rdb文件传送给从机,此后主机的每次写操作都会同步发送给从机,从而保证他们的数据一致性
薪火相传:一台redis服务是一台redis的从机,但是他还是另外一台redis的主机
可以去中心化。中间的从机在作为从机时,还是不具备写的权限。
反客为主
当主机宕掉后,可以使用slaveof no one指令成为主机,从而具备写的权限。如果一个从机从一个主机的从机变成另外一个主机的从机,那么之前的数据都将会被清除,重新进行备份数据。
哨兵模式(sentinel)
创建一个sentinel.conf文件
sentinel monitor mymaster 127.0.0.1 6379 1
monitor是哨兵的名字 mymaster是监视的主服务器起的名字 最后面的1是表示多个哨兵最少要有1个哨兵同意才可以迁移
使用redis-sentinel sentinel.conf就会以前台的方式启动哨兵
集群模式
创建6个redis服务
在配置文件中添加三行文件:
cluster-enable yes 启动集群
cluster-config-file node-6379.conf
cluster-node-timeout 节点中的某台服务掉线后,多久进行上位操作
接着使用以下命令将集群合并
redis-cli --cluster create 8.136.84.238:6381 8.136.84.238:6382 8.136.84.238:6383 8.136.84.238:6384 8.136.84.238:6385 8.136.84.238:6386 --cluster-replicas 1