【小测试】使用腾讯云上的群集版redis
具体的文档请见:https://cloud.tencent.com/document/product/239/3205
- 群集版本相当于很多个redis进程构成一个群集,最大支持128个分片(猜测分片就是进程数)
- 每个分片又对应着1~5个只读的slave,再不考虑主从同步延迟的情况下,通过读slave可以提升群集的读性能。
- 群集版本存储的内容,最好是KEY与KEY之间完全没关系的
- 如果有一定的关系,最好通过KEY后面的TAG把同一组KEY落到同一个slot上面
- like this: key_of_mine{tag}。proxy计算slot的hash的时候,会使用花括号中的内容
- 例如 zinterstore这样两个KEY取交集的操作,一定要保障两个KEY在同一个SLOT上,否则出现:
(error) CROSSSLOT Keys in request don't hash to the same slot
- 群集版的命令兼容性请看:https://cloud.tencent.com/document/product/239/36152
- 只要不是跨slot,看起来都是支持的
下面是命令行的操作尝试:
#查看群集信息
CLUSTER INFO
#查看群集的节点
CLUSTER NODES
#查看某个KEY的slot值
CLUSTER KEYSLOT ahfu_1
#输出slot与节点的映射关系。
CLUSTER SLOTS
zadd z_ahfu_011{ZONE_OF_SZ} 100 192.168.0.1_0 101 192.168.0.1_1
zadd z_ahfu_012{ZONE_OF_SZ} 102 192.168.0.1_0 103 192.168.0.1_1
zinterstore z_ahfu_013{ZONE_OF_SZ} 2 z_ahfu_011{ZONE_OF_SZ} z_ahfu_012{ZONE_OF_SZ} weights 1.0 0.0
zinterstore z_ahfu_014{ZONE_OF_SZ} 2 z_ahfu_011{ZONE_OF_SZ} z_ahfu_012{ZONE_OF_SZ} weights 0.0 1.0
zinterstore z_ahfu_013 2 z_ahfu_011 z_ahfu_012 weights 1.0 AGGREGATE sum
(error) CROSSSLOT Keys in request don't hash to the same slot