• 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

  • 相关阅读:
    Unity中的AI算法和实现1-Waypoint
    微信管理系统如何助力企业提升效率和业绩!
    Python 中的 DNS 查找
    sysstat系列:pidstat
    learn编码器
    k8s k3s节点加入控制平面没效果
    毕设 JAVA JSP 简单的OICQ聊天程序论文
    【LeetCode】【剑指offer】【最小的k个数】
    牛客C基础题练习
    Vue2 Element el-table多选表格 控制选取的思路
  • 原文地址:https://blog.csdn.net/qq_56892136/article/details/126314991