博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis客户端集群
阅读量:6383 次
发布时间:2019-06-23

本文共 800 字,大约阅读时间需要 2 分钟。

    1、Redis集群一般分为两类,即3.0版本后的服务端集群实现,3.0版本前的客户端集群实现,服务端集群即Redis Cluster(官方实现),采用slot槽的概念(分片,所有服务端redis实现共享16384个slot,集群的搭建、新增、删除、路由都很方便。而本文主要介绍Redis的客户端集群实现,即Redis Sharding
    2、Redis Sharding采用客户端Sharding方式(一致性hash
服务端Redis还是一个个相对独立的Redis实例节点
,没有做任何变动。同时,我们也不需要增加额外的中间处理组件,这是一种非常轻量、灵活的Redis多实例集群方法。  
    3、Jedis客户端支持客户端集群
    4、客户端集群的问题:由于采用了一致性Hash,Redis Sharding的一大缺陷就是不好扩容,虽然一致性hash只影响到附近的节点,但是当扩容时还是会出现redis key的迁移,会导致内存穿透,无法命中的问题。

      Redis作者给出了一个比较讨巧的办法--presharding,即预先根据系统规模尽量部署好多个Redis实例,这些实例占用系统资源很小,一台物理机可部署多个,让他们都参与sharding,当需要扩容时,选中一个实例作为主节点,新加入的Redis节点作为从节点进行数据复制。数据同步后,修改sharding配置,让指向原实例的Shard指向新机器上扩容后的Redis节点,同时调整新Redis节点为主节点,原实例可不再使用。(相同的数据,使用性能更好的机器替换原机器)

presharding是预先分配好足够的分片,扩容时只是将属于某一分片的原Redis实例替换成新的容量更大的Redis实例。参与sharding的分片没有改变,所以也就不存在key值从一个区转移到另一个分片区的现象,只是将属于同分片区的键值从原Redis实例同步到新Redis实例。

    

转载地址:http://vgwha.baihongyu.com/

你可能感兴趣的文章
深入挖掘思科网站
查看>>
我的友情链接
查看>>
利用文件来扩展swap交换分区空间
查看>>
Nginx的启动、停止、平滑重启
查看>>
设置JVM编码 如果JVM不设置编码JVM会取系统默认的编码
查看>>
adb logcat
查看>>
当Repeater数据源为对象数组时,在dataBound事件中DataItem转换类型
查看>>
CentOS7 Firewall防火墙
查看>>
android之网格布局和线性布局实现注册页面
查看>>
Caused by: java.lang.ClassNotFoundException: xx...
查看>>
32位系统安装64位windows 7
查看>>
函数指针和指针函数
查看>>
用Instant Client,不安装oracle客户端使用sqlplus连接远程数据库
查看>>
(随笔)js获取当前时间并格格式化当前日期 获取date天后的日期(2014年11月27日 16:31:49)...
查看>>
Gradle升仙路之Groovy(1)
查看>>
项目思考:需求讲解可以重复一次
查看>>
ubuntu "sudo: add-apt-repository: command not fou"
查看>>
医药吧开放平台的替代者-天狗云平台
查看>>
盲注代码
查看>>
redis监控状态connect命令
查看>>