Nyx*_*nyx 6 python redis python-3.x
当我像这样将对象存储到 Redis 时,它工作得很好
payload = {'age': 12}
key = 'animals:cow'
r.hmset(key, payload)
Run Code Online (Sandbox Code Playgroud)
但是,当我通过连接 2 个字符串创建密钥时
payload = {'age': 12}
key = 'animals:' + 'cow'
r.hmset(key, payload)
Run Code Online (Sandbox Code Playgroud)
我收到错误
redis.exceptions.ResponseError:针对持有错误类型值的键的 WRONGTYPE 操作
key当字符串与第一个示例中的字符串相同时,为什么第二个示例会给出错误?
我无法复制你的问题。也许您正在混合字符串和哈希方法?这是我的环境:
我使用了你的确切代码,但我在上面添加了这个:
from redis import StrictRedis
r = StrictRedis(host="localhost", port=6379, db=0)
Run Code Online (Sandbox Code Playgroud)
-你的代码对我有用!
-也许你在 hmset 之前使用了不同的 set 方法?
-Redis 不仅仅是一个普通的键值存储;在传统的键值存储中,我们将字符串键与字符串值相关联。然而,Redis 为我们提供了一些额外的选项,这些选项之间的不兼容可能会导致错误。
https://redis.io/topics/data-types-intro
- 除非您有隐藏字符或不一样的特殊 unicode 版本,否则 #1 和 #2 之间没有区别:
1. key = 'animals:cow'
2.key = 'animals:' + 'cow'
由于您未共享代码中的元素,您可能会与 Redis 发生类型冲突;即也许您设置了一种方式,然后尝试设置另一种方式。在 Redis 中设置值的方法有很多种。如果我们设置一种方式,然后设置另一种方式(使用不同的方法),就会发生错误。以下是如何在 Redis 中设置键和值的一些示例:
<key> <value><key> <value> [key value ...]<key> <field> <value><key> <field> <value> [field value ...]<key> <offset> <value>SETBIT <key> <offset> <value>尝试获取以不同方式设置的内容时出现的相关问题: WRONGTYPE Operation against a keyholding the bad kind of value php
| 归档时间: |
|
| 查看次数: |
21396 次 |
| 最近记录: |