当前位置: 首页 > 面试题库 >

Redis跨槽错误

戎洛城
2023-03-14
问题内容

我试图在Redis上一次插入多个键/值(有些值是集合,有些是散列),但出现此错误:ERR CROSSSLOT Keys in request don't hash to the same slot

我不是redis- cli从某些需要将多个键/值写入Redis集群的Go代码中执行此操作。我看到代码中的其他地方以这种方式完成了多个键值,但我不明白为什么我的那个不起作用。没有此错误的哈希要求是什么?

谢谢


问题答案:

在集群拓扑中,键空间分为哈希槽。不同的节点将持有哈希槽的子集。

仅当涉及的所有键都在属于同一节点的哈希槽中时,才允许涉及多个键的多个键操作,事务或Lua脚本。

Redis
Cluster实现了Redis的非分布式版本中所有可用的单键命令。只要键都属于同一个节点,就可以执行执行复杂的多键操作(如Set类型并集或交集)的命令。

您可以使用哈希标签强制键属于同一节点



 类似资料:
  • 我使用POSGTRESQL10。 我想将数据库“DB”中的2个表复制到数据库“Destination”中具有相同列的两个表中。 第一个复制工作。然后,当我更改一个varchar条目(不是FK)的值时,该值不会被复制,并且在postgres日志中出现以下错误: 2020-04-12 16:16:57.886 CEST[720474]日志:订阅“my_subscription”的逻辑复制应用进程已启动

  • 我正在尝试使用hdfs水槽运行水槽。hdfs在不同的机器上正常运行,我甚至可以与水槽机器上的hdfs交互,但是当我运行水槽并向其发送事件时,我收到以下错误: 同样,一致性不是问题,因为我可以使用hadoop命令行与hdfs交互(水槽机不是datanode)。最奇怪的是,在杀死水槽后,我可以看到tmp文件是在hdfs中创建的,但它是空的(扩展名仍然是. tmp)。 关于为什么会发生这种情况的任何想法

  • 我试图配置水槽与HDFS作为汇。 这是我的flume.conf文件: 我的hadoop版本是: 水槽版本是: 我已将这两个jar文件放在flume/lib目录中 我将hadoop common jar放在那里,因为在启动flume代理时出现以下错误: 现在代理开始了。这是启动日志: 但是当一些事件发生时,下面的错误出现在水槽日志中,并且没有任何东西被写入hdfs。 我缺少一些配置或jar文件?

  • 当我使用axios发送XMLHttpRequest时,就会发生这种情况。 错误:XMLHttpRequest无法加载https://nuxt-auth-routes.glitch.me/api/login。对飞行前请求的响应没有通过访问控制检查:在所请求的资源上没有“访问-控制-允许-起源”标头。因此,不允许访问源'http://localhost:3000'。

  • 我试图将FLUME与HDFS集成,我的FLUME配置文件是 我的核心站点文件是 当我尝试运行flume代理时,它正在启动,并且能够从nc命令中读取,但是在写入hdfs时,我得到了下面的异常。我尝试使用< code > Hadoop DFS admin-safe mode leave 在安全模式下启动,但仍然出现以下异常。 如果在任何属性文件中配置了错误,请告诉我,以便它可以工作。 另外,如果我为此

  • 我在跑步 在我的redis cli上,如果至少有一个键发生了更改,则每10分钟保存一次,但是它给了我: 我在redis官方网站上举了一个例子:http://redis.io/topics/persistence 我做错了什么?