redis集群

  • 什么是redis集群?

    • redis是指启动N个节点,将整个数据库分布在这N个节点中,每个节点存储总数据的1/N。
    • redis集群实现了对redis的水平扩容
    • redis集群通过分区来提供一定程度的可用性,即使集群中有一部分失效或者无法进行通讯,集群也可以继续处理命令请求。
  • 集群解决的问题:

  • 集群实现步骤

  • 集群的使用

    1.集群的连接

    • 使用普通方式连接

      • 存储数据时可能出现MOVED重定向到另外的主机的错误
      • 出现此错误的原因:
        集群的时候对每一个key对进行了分区,即每一个key对应着唯一的插槽(slot)
      • 什么是slot?
        一个 Redis 集群包含 16384 个插槽(hash slot), 数据库中的每个键都属于这 16384 个插槽的其中一个, 集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽, 其中 CRC16(key) 语句用于计算键 key 的 CRC16 校验和 。
    • 使用集群方式连接
      • 存储数据时,若此数据不在该主机负责的插槽中,则自动重定向到负责此数据的主机上且存储此数据
      • 即使连接的不是主机,集群会自动切换主机存储。主机写,从机读。
      • 无中心化主从集群。无论从哪台主机写的数据,其他主机上都能读到数据
    • 在连接后,可通过命令cluster nodes查看集群配置

    2.在集群中录入值

    • mset k1 v1 k2 v2 k3 v3可能会出现不在同一个slot的key不能同时设置

      • 即不在一个slot下的键值,是不能使用mget,mset等多键操作。
      • 解决方法
        在每一个key后面加{描述信息}即可
        mset k1{s1} v1 k2{s1} v2 k3{s3} v3
    • 查询集群中的值

      • cluster keyslot key名或组名–查看插槽的对应的值
      • cluster countkeysinslot key名或组名–查看插槽的key的数量
      • cluster getkeysinslot key名或组名–获取插槽含有的key
  • 集群的故障恢复

    • 集群故障后主节点与子节点的关系:

      • 若主节点发生故障,过一段时间子节点会自动成为主节点,取决于你的配置信息(cluster-timeout),恢复后,主节点会变成子节点的从机
    • 如果所有某一段插槽的主从节点都宕掉,redis服务是否还能继续?

      • 取决于redis.conf中的参数cluster-require-full-coverage
      • 如果某一段插槽的主从都挂掉,而cluster-require-full-coverage为yes ,那么 ,整个集群都挂掉
      • 如果某一段插槽的主从都挂掉,而cluster-require-full-coverage为no ,那么,该插槽数据全都不能使用,也无法存储。
  • 集群的主子节点分配策略

    • 主节点和主节点不应该在同一个机器服务
    • 主节点和子节点不应该在同一个机器服务
    • 原因:若主节点和主节点在同一个机器服务,那这个机器发生故障,即全部数据库故障,redis服务停止。同理,若主节点和子节点在同一个机器服务,那主节点发生故障,则子节点也发生故障,若不在同一台机器,则子节点在主节点发生故障后可以成为主节点。

Redis集群的配置与使用相关推荐

  1. redis集群的配置

    1.修改主机的主机名称 [root@localhost ~]# vim/etc/sysconfig/network NETWORKING=yes HOSTNAME=localhost.localdom ...

  2. redis集群主从配置

    集群环境安装(ruby的环境云主机和虚拟机都不需要装) 因为集群命令文件需要ruby语言的支持(自行下载) http://www.ruby-lang.org/en/downloads/ 这个是下载地址 ...

  3. [转]Redis集群的配置

    一:memcache 和 Redis 对比总结 [memecache 特点] 1:速度最快(没有自测,但网上有详细的测试用例) 2:支持水平扩展,可以任意添加节点 [redis 特点] 1:速度没有m ...

  4. redis集群yml配置lettuce

    在springboot中使用redis很方便,只要在yml配置好reids的相关配置项就可以直接使用. 无论是单实例还是集群,都能配置: spring:application:name: gatere ...

  5. Redis 集群密码配置

    >补充一下密码相关配置 在config配置文件中与密码有关的两个配置属性: 1)requirepass 为节点设置密码,访问该节点需要首先使用 auth xxxxxx 命令. 2)mastera ...

  6. redis集群版配置三种方式

    redis的三种集群方式 redis有三种集群方式:主从复制,哨兵模式和集群. 1.主从复制 主从复制原理: 从服务器连接主服务器,发送SYNC命令: 主服务器接收到SYNC命名后,开始执行BGSAV ...

  7. Redis集群——主从配置

    一主二从环境 host port role 192.168.186.200 6379 master 192.168.186.201 6379 slave 192.168.186.202 6379 sl ...

  8. Redis单例、主从模式、sentinel以及集群的配置方式及优缺点对比

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:爱宝贝丶 my.oschina.net/zhangxufen ...

  9. spring 使用redis集群配置

    上面两篇介绍了redis集群的配置合一些基本的概念,所以接下来当然是要在项目中使用咯,redis的java支持已经做的非常好了,所以我们来试着使用这些api来进行redis的操作,首先我们需要操作re ...

最新文章

  1. /etc/profile ,/etc/bashrc ,~/.bash_profile,~/ .bashrc 区别与联系
  2. 一个女生不主动联系你还有机会吗?
  3. elasticsearch 最佳实践
  4. Java笔记:与系统交互、系统相关的类,Object类
  5. 教你用java统计目录下所有文档的词频
  6. gulp 安装时一直提示缺少模块( Cannot find module 'gulp-load-plugins')
  7. Linux系统rootpassword改动
  8. css 控制图片最大宽度
  9. 安卓USB开发教程 六 安卓 AOA 2.0
  10. nginx的脚本引擎(一)
  11. 一些服务器客户端的c例子
  12. 学习设计模式 - 六大基本原则之开闭原则
  13. python入门——P37类和对象:面向对象编程
  14. LQR、Stochastic Bandits、Bayesian Bandits、Contextual Bandits与基于模型的强化学习浅析
  15. 小程序坑 redirectTo 计时器 setInterval clearInterval
  16. 解构淘宝SPM/SCM流量跟踪体系
  17. rainmeter使用教程_如何使用Rainmeter自定义Windows桌面
  18. 西电 计算机学院 博后流动站,西电7个博士后科研流动站接受专家组综合评估检查...
  19. 杨立昆怒怼机器人索菲娅:AI硬加人类意识是揠苗助长
  20. 3D立体相册不过是冷锋蓝plus版 html+css

热门文章

  1. UGUI 动手制作字体
  2. 六招搞定你爱的坏男人
  3. 绿色手绘插画幼儿园家长会PPT模板
  4. android换皮肤思路总结
  5. 初三同学的选择(续)
  6. 使用三次多项式拟合天猫双十一交易额
  7. C语言·1个水分子的质量约为3.0*10^-23克。1夸脱水大约是950克。编写程序,输入水的夸脱数,显示水分子数量。
  8. 机器学习实验(十三):90%的准确率,根据中文名字预测性别!
  9. 求旋转数组(左旋和右旋)的常用两个方法(详解)
  10. c语言多叉树运用存储源代码,C语言的家谱图想求一个运用结构链表的源程序我有多叉树版的源程 爱问知识人...