redis - MULTI 应该在 Redis 集群上工作吗?
问题描述
我在集群数据库(本地)上使用 Redis。我正在尝试该MULTI
命令,但似乎它不起作用。单独的命令有效,我可以看到分片是如何移动的。
还有什么我应该做的MULTI
工作吗?该文档不清楚它是否应该工作。https://redis.io/topics/cluster-spec
在下面的示例中,我只是设置了单个键(注意 port=cluster 如何更改),然后尝试使用 multi 命令。EXEC
调用之前执行的命令
127.0.0.1:30001> set a 1
-> Redirected to slot [15495] located at 127.0.0.1:30003
OK
127.0.0.1:30003> set b 2
-> Redirected to slot [3300] located at 127.0.0.1:30001
OK
127.0.0.1:30001> MULTI
OK
127.0.0.1:30001> HSET c f val
-> Redirected to slot [7365] located at 127.0.0.1:30002
(integer) 1
127.0.0.1:30002> HSET c f2 val2
(integer) 1
127.0.0.1:30002> EXEC
(error) ERR EXEC without MULTI
127.0.0.1:30002> HGET c f
"val"
127.0.0.1:30002>
解决方案
MULTI
事务以及任何多键操作仅在集群 Redis 部署中的单个哈希槽内受支持。
推荐阅读
- r - 我想创建一个柱形图,其中每列是两种特定颜色之一
- design-patterns - 从复杂的数据库功能构建复杂对象的良好设计模式是什么?
- python - 如何在 Python 中通过该对象的属性显示与我的搜索匹配的整个对象?
- tomcat - Cloud Foundry java buildpack - 找出tomcat版本
- enterprise - SCCM - 应用程序失败的任务序列
- cmake - 如何在 CMake 命令行上覆盖 CMakeLists.txt 中的默认变量?
- python - 从使用熊猫从数据框中提取的列中删除小数
- ios - 如何在 UIActivityViewController 中识别和排除第 3 方 ActivityType(例如“发送到 Kindle”、“Chrome”)?
- c# - 尝试使用 CsvHelper 将 CSV 行解析为多个类
- extjs - extjs treenode appendchild 无法正常工作