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

使用Redis Cluster,是否可以仅将哈希标签传递给eval?

浦墨竹
2023-03-14
问题内容

从Redis文档上eval可以看到:

不应该代表键名

在Redis集群教程中

哈希标签记录在Redis
Cluster规范中,但是要点是,如果密钥的{}中的括号之间有一个子字符串,则仅对字符串中的内容进行哈希处理,例如,此{foo}键和另一个{foo}
key保证在同一哈希槽中,并且可以在以多个key作为参数的命令中一起使用。

是否可以仅传递哈希标签,或者仅传递带有该哈希标签的一个键?我们希望eval的内容可以与由另一个键的内容确定的一组动态键一起使用,但是每个键都属于同一个hash标签。


问题答案:

是的, 应该 可以。

如文档中所述:

必须在执行之前分析所有Redis命令,以确定该命令将对哪些键进行操作…。请注意,未强制执行此规则是为了向用户提供滥用Redis单实例配置的机会,而不会编写脚本与Redis
Cluster兼容。

因此,只要您确保脚本与Redis Cluster兼容,就可以不遵循此规则。这意味着对的调用EVAL应指定一组散列到一个且只有一个服务器的密钥。

仅使用单个键(例如{foo})就可以正常工作。



 类似资料:
  • 我使用OpenSSL创建了一个自签名证书,如下所示: 然后,我在C#.NET4.0中编写了以下代码: 使用一些文章和答案中的解决方案,我有类,我试图在其中实现和注册签名描述: 我已经验证了hash的长度为字节,它返回一个。但是如果我使用var(20字节长),尽管中指定的算法是,但它可以工作,并使用算法对哈希进行签名。 另外,如果我打印,它的值是http://www.w3.org/2000/09/x

  • 问题内容: 这是根据官方文档提供的信息: 在PHP中可以使用四对不同的开始和结束标记。其中的两个和始终可用。另外两个是短标签和ASP样式标签,可以从php.ini配置文件中打开和关闭。因此,尽管有些人发现短标签和ASP样式标签很方便,但它们的可移植性较差, 通常不建议这样做 。 以我的经验,大多数服务器 确实 启用了短标签。打字 比打字要方便得多 程序员的便利性是一个重要因素,那么 为什么 不推荐

  • 问题内容: 我想做这样的事情: 但是我得到这个错误 对成员’init()’的不明确引用 我知道我可以写 但是我想知道是否还有另一种方式。 问题答案: 问题在于不存在 仅 具有参数的初始化程序。 __ 目前只存在: 尽管该参数具有默认值,但是编译器仅在初始化程序的调用位置为您“填充”该默认值。 获取对函数本身的引用时,不会部分应用默认参数值,编译器也不会为默认参数值的所有可能组合生成额外的重载。后者

  • 问题内容: 我有一个带有一些componentDidMount逻辑的React组件: 是否可以通过props传递此组件,以便componentDidMount()中的所有内容都被执行,以某种方式伪造以便截取屏幕截图?遵循以下原则: 我知道我可以使用,但是我有一些复杂的登录逻辑,我想使用这样的快捷方式来避免,而是将所有需要的道具直接传递给组件? 问题答案: 在这里回答了这个问题。让我们在这里尝试相同

  • 问题内容: 通常在Gulp中任务看起来像这样: 是否可以将命令行标志传递给gulp(这不是任务),并使其有条件地运行任务?例如 然后在我的gulpfile.js中: 问题答案: Gulp对此不提供任何实用程序,但是您可以使用许多命令args解析器之一。我喜欢。应该: 您还可以将其与有条件地传输流结合起来,这对于开发与生产产品非常有用: 并使用或致电。

  • 问题内容: 与在或中使用的方式类似: 问题答案: 是。 如果你不理会关键字参数,这很简单并且可以工作: 如你所见,Python将为你提供一个包含所有参数的元组。 对于关键字参数,你需要将其作为单独的实际参数接受,如的所示。