介绍:主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主;

优点:
1)读写分离,减轻主机的压力,性能扩展;
2)容灾快速恢复:某个从机宕机,可自动从其他的从机读取数据;
缺点:复制延时,从机越多,复制延时的情况越严重;
通常配置为“一主多从”模式,主机宕机带来的影响可通过搭建集群解决;

情况2:主机发生数据更新(增量复制)
mkdir redis_demo;2)cd redis_demo;include参数引入,由相同目录下redis.conf文件提供;
redis-server redis***.conf启动Redis服务;redis-cli -p 端口号访问Redis服务;info replication查看主从复制信息;slaveof 主机ip 主机Redis服务对应端口进行配置;

slaveof no one命令即可;
replica-priority 100,值越小优先级越高;
sentinel monitor 监控主机别名 主机ip Redis进程端口号 同意发生迁移的哨兵数量:该哨兵需要监控的主机ip等信息;redis-sentinel sentinel.conf;Redis存在的问题:
1)Redis扩容问题;
2)Redis分摊并发写操作;
3)主从模式,薪火相传模式,主机宕机,导致ip地址发生变化,应用程序中配置需要修改对应的主机地址、端口等信息;
解决方案:
1)早期方案:代理主机
特点:客户端请求通过代理主机转发;

2)早期方案:无中心化集群
特点:服务器之间互相连通,任何一台服务器都可以作为客户端访问入口;

集群介绍:
1)Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N;
2)Redis 集群通过分区(partition)来提供一定程度的可用性(availability): 即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求;
集群缺点:
1)多键操作是不被支持的 ;
2)多键的Redis事务是不被支持的;lua脚本不被支持;
3)由于集群方案出现较晚,很多公司已经采用了其他的集群方案,而代理或者客户端分片的方案想要迁移至redis cluster,需要整体迁移而不是逐步过渡,复杂度较大;
搭建集群流程:
Redis安装目录的src目录下,使用redis-cli --cluster create --cluster-replicas 1 ip:6379 ip:6380 ip:6381 ip:6389 ip:6390 ip:6391进行合体;redis-cli -c -p 任意Redis服务端口进行集群策略连接,设置数据会自动切换到相应的写主机;cluster nodes查看集群节点信息;--cluster-replicas 1指Redis要求每个主机至少需要一个从机,故6个节点被分为3组,每组由一个主节点和一个从节点构成;CRC16(key) % 16384 来计算键key属于哪个槽;cluster keyslot key计算key所在插槽;cluster countkeysinslot 插槽编号统计该插槽内key的数量;cluster getkeysinslot 插槽编号 期望返回的key数量返回期望数量个该槽中的键;masterauth 密码才能自动切换;cluster-require-full-coverage = yes则整个集群全部挂掉,不能使用;cluster-require-full-coverage = no则整个集群中只有当前主从节点无法使用,其他部分正常使用;参考资料:《尚硅谷》