ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] * * * * * # redis-cluster 单节点redis存在内存和并发的限制,自redis3.0开始提供了redis的分布式集群模式 * * * * * ## 1. 数据分布式存储 ### 1.1数据分区方式 1. hash分区(集群节点数取余) 2. 虚拟槽分区 通过哈希函数把数据映射到一定范围的整数(slot)集合中。每个节点负责多个槽(slot),数据分布比较均匀。这种方法是redis使用的数据分区方法。 * * * * * ### 1.2redis集群存在的限制 1. 对批量操作的支持有限。 目前只支持slot值相同key支持操作,对于不同slot值的mget、mset等操作,因为操作可能需要作用在多个节点上,所以不被支持。 2. 事务支持有限 对于分配在不同节点上的多个key,无法支持事务功能。 3. 对于大的hash,list无法拆分映射。(映射的最小单位是key) 4. 不支持多数据库空间 单机redis有16个库,集群模式的redis只有一个数据库空间---db0. 5. 复制结构只支持一层。 只能是一主一从或者一主多从,不存在树状主从。 6. slave节点默认不接受任何读写请求,执行readonly命令后可以接受读请求。 6. 集群不可用 1)如果任意master挂掉,并且这个master没有slave,集群计入fail状态。 2)如果有一半以上的master挂掉,无论有没有salve都进入fail状态。 * * * * * ### 1.3 集群的优势 * 自动故障转移 当某台master挂掉,其slave节点自动升级为master节点。这台master重启后,自动变成slave。