zoukankan      html  css  js  c++  java
  • Redis学习笔记之多机数据库

    1.复制

      完整重同步,从服务器完全复制主服务器的数据,主要通过RDB文件和单条命令传输(套接字连接)。

      部分重同步,主服务器进行命令传播的时候,不仅会把写命令发送给从服务器,而且还会把写命令放入复制积压缓冲区中,当主从服务器连接断开又重新连接上的时候,从服务器向主服务器发送PSYNC命令(参数包括复制偏移量服务器运行ID)请求同步,主服务器根据复制偏移量和服务器运行ID向从服务器回复(只有当服务器运行ID与主服务器相同,复制偏移量在复制积压缓冲区中能找到才进行部分重同步)。

    2.Sentinel

      监视系统,是Redis的高可用性(HA)解决方案,由一个或多个Sentinel实例组成,负责监视所有的主服务器及其从服务器,当主服务器下线之后,Sentinel会从下线主服务器的从服务器中选择一个作为新的主服务器。

      Sential通过命令连接发送信息到频道,通过订阅连接从频道接收信息

      主观下线:Sentinel向服务器发送PING命令得到无效回复,则Sentinel判定该服务器主观下线。

      客观下线:Sentinel向其他连接该主观下线服务器的Sentinel询问,如果回复结果中判定下线(包括客观和主观下线)的数量达到一定程度就判定该服务器客观下线。

      选择领头Sentinel、选择新的主服务器

    3.集群(Redis Cluster)

      节点:一个节点就是一个运行在集群模式下的Redis服务器,会继续使用所有在单机模式中使用的服务器组件。每个节点都会使用clusterNode的数据结构来保存自己的状态,也会为其他节点创建一个对应的clusterNode的数据结构来保存其他节点的状态。

      槽:集群的整个数据库被分为16384个槽(slot),集群中的每一个节点可以处理0~16384个槽,当数据库中的16384个槽都有节点在处理时,集群处于上线状态(ok),否则处于下线状态(fail)。clusterNode结构中会记录节点负责处理哪些槽,clusterState结构中会记录16384个槽的指派信息。CRC16然后模16384取余计算键属于哪一个槽。

      对于Redis集群技术还有:客户端分片、代理分片(Twemproxy)

  • 相关阅读:
    [linux驱动]设备驱动模型相关(二)——常用API
    [Linux驱动]字符设备驱动学习笔记(三)———高级
    Android 禁用Home键
    Android 使用QuickContactBadge关联联系人
    Android 使用SeekBar调节系统音量
    Android 完全退出应用程序
    Android 窗体显示状态
    Eclipse中常见问题
    解读人们对安卓系统的种种误解
    使用Bitmap加载图片出现OOM问题
  • 原文地址:https://www.cnblogs.com/songxh-scse/p/6692466.html
Copyright © 2011-2022 走看看