Redis-Cluster笔记
问:Redis-Cluster通过什么方式存储数据?
Redis集群通过分片的方式来保存数据库中的键值对(K/V)。整个数据库被分为16384个槽,这些槽大致被均等的分配到每一个节点上(使用户可自主配置)。每个键都属于某一个槽,计算键值有效部分对应的槽,键通过CRC-16算法计算校验和,将校验和和16384取余,得出该键值对应的槽,而后经过gossip协议,周期性的和集群中的其余节点交换信息,最终整个集群都会知道key在哪一个槽上。当所有的槽都有节点解决时,集群处于上线状态,否则集群将处于下线状态。
问:能否可以将某一类的数据统一放到某一个槽上面?
可以,key的有效部分用CRC16算法计算出哈希值,再将哈希值对16384取余,得到插槽值。什么是有效部分,key值假如包含了“{}”部分。并且“{}”中有字符。则“{}”包含的部分将作为有效部分计算槽值,假如key没有包含“{}”则将所有key值作为有效部分。所以我们可以将某一类数据的key统一prefix作为有效部分。
问:用户端查询某一key对应的value值的时候。假如访问的节点没有该key将如何解决?
访问的键所在的槽处于访问的节点,命令将会直接执行,并返回对应的值。访问的键所在的槽不在当前访问的节点,节点将返回MOVED错误,例如:-moved 233 127.0.0.1:6377 ,其中233为当前键所在槽值,IP地址表示当前槽值所在的节点,用户端将会根据返回的IP和端口信息再次发送请求重试,返回键对应的值。
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Redis-Cluster笔记
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Redis-Cluster笔记