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

在Redis集群中进行批量数据插入时,由于key的slot不同会导致操作失败。错误提示表明key1、key2和key3分散在不同节点,无法批量处理。Redis集群的key分配由slot决定,不同slot的key会被分发到不同节点。Jedis客户端操作同样会因key的slot差异抛出异常。
摘要由CSDN通过智能技术生成

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插入到同一节点可以参考我的这篇博客:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员路同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值