zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Redis第二十七讲 Redis集群批量操作带来的问题

Redis批量集群 操作 带来 问题
2023-09-11 14:16:28 时间

Redis集群批量操作

比如对我们之前搭建的三主三从集群进行批量数据插入操作会报什么错误呢,关于Redis集群搭建可以参考我之前的一篇博客:Redis第十九讲 Redis主从,哨兵,集群搭建讲解, Redis集群搭建相对于哨兵还是比较简单的
开始我们的验证:

启动redsi集群
docker-compose -f docker-compose-redis-cluster.yml up
随便找一个redis节点连接 这里选择redis01节点连接
root@node01:/data# [root@node01 redis]# docker exec -it redis-1 redis-cli -c -a redis -p 6381
#批量插入操作
 mset key1 value1 key2 value2 key3 value3

结果可想而知,直接报错


192.168.36.128:6382> mset key1 value1 key2 value2 key3 value3
(error) CROSSSLOT Keys in request don't hash to the same slot

上述两个错误都是在说“key1”、“key2”和“key3”的slot不同,无法进行批量操作。

对于redis集群来说,key要保存在哪个节点上是由key的slot来决定的。也就是说这三个key会被set到不同的节点上。而redis-cli和jedisCluster并没有对这种情况做特殊处理,而是直接抛出异常。关于如何可以讲多个key插入到同一节点可以参考我的这篇博客: