Redis主从复制

主从复制

1.redis.conf(配置文件信息)

– port 6380; 从服务端口号

– slaveof 127.0.0.1 6379;指定主服务器

2.启动从数据库

./bin/redis-server ./redis/config --port 6380 --slaveof 127.0.0.1 6379

哨兵模式

当redis在做master-slave的高可用方案时,假如master宕机了,redis本身(及很多客户端)都没有实现自动进行主备切换,而redis-sentinel(哨兵)本身也是独立运行的进程,可以部署在其他与redis集群可通讯的机器中监视redis集群

哨兵模式特点:
1.不时地监控redis是否按照预期良好的运行
2.如果发现某个redis节点运行出现状况,能够通知另外一个进程(比如它的客户端)
3.能够进行自动切换,当一个master节点不可用时,能够选举出master的多个slave中的一个来作为新的master,其他的slave节点会将它所追随的master的地址改为被提升为master的slave地址
4.哨兵为客户端提供服务发现,客户端链接哨兵,哨兵提供当前master的地址然后提供服务,如果出现切换,也就是master挂了,哨兵会提供客户端一个新地址

Redis Cluster集群

Redis集群搭建的方式有很多,redis3.0后版本支持redis-cluster集群,至少需要3个Master和3个Slave才能建立集群。Redis Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点链接

特点:
1.所有redis节点彼此互联,内部使用二进制协议优化传输速度和带宽
2.节点的fail是通过集群中超过半数的节点检测失效时才生效
3.客户端和redis节点直连,不需要中间层proxy层,客户端不需要链接集群的所有节点,连接任意一个可用节点即可
4.redis-cluster把所有的物理节点映射到[0-16383]哈希槽上(不一定平均分配) cluster负责维护
5.Redis集群分好16384个哈希槽,当需要在Redis集群中放置一个key-value时,redis先对key使用crc16算法算出一个结果,然后把结果对16384取余,这样每个key都会对应一个编号在0-16383之间的哈希槽,redis会根据节点数量大致均等的将哈希槽映射到不同的节点

Redis Cluster节点分配

Redis Cluster采用虚拟槽分区,所有的键根据哈希函数映射到0-10683个整数槽内,每个节点负责维护一部分槽以及槽所映射的键值数据

三个主节点分别是:A,B,C三个节点,它们可以是一台机器的三个端口,也可以是三台不同的服务器,那么,采用哈希槽(hash slot)的方式来分配16384个slot的话,他们三个节点分别承担的slot区间是
节点A覆盖0-5460
节点B覆盖5461-10922
节点C覆盖:10923-10683

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值