【问题标题】:Redis CLI - WRONGTYPE Operation against a key holding the wrong kind of valueRedis CLI - WRONGTYPE 对持有错误值的键的操作
【发布时间】:2021-04-10 04:09:58
【问题描述】:

我是 redis 的新手。 我正在尝试执行以下命令。

HSET 1000:123:1603872000 "totalscore":100 "uid":"1000:123:1603872000"  "price": 1000  "points": 30

但这给了我以下错误

(error) WRONGTYPE 对持有错误值的键进行操作

type 1000:123:1603872000

这给了我作为字符串的类型。如何将字符串字段值设置为 redis 中的字符串键?

【问题讨论】:

    标签: redis redis-cli


    【解决方案1】:

    在redis的hash map中存储值的语法是: hset hash_map_name key1 value1 key2 value2 key3 value3

    您不必用冒号分隔键值对。 在下面的示例中,我在名为 _my_hash_map 的哈希映射中存储了 3 个名为 name、website 和 age 的键。

    127.0.0.1:6379> hset my_hash_map  name Ankit website StackOverflow age 100
    (integer) 3
    127.0.0.1:6379> hgetall my_hash_map
    1) "name"
    2) "Ankit"
    3) "website"
    4) "StackOverflow"
    5) "age"
    6) "100"
    127.0.0.1:6379>
    

    【讨论】:

    • 是的,但这又给了我(错误) WRONGTYPE 针对持有错误值的键的操作。 HSET 1000:123:1603872000 总分“100” uid“1000:123:1603872000”价格“1000”。但是,如果我将密钥从 1000:123:1603872000 更改为 1000:123:160387200,则没有问题。 TYPE 1000:123:1603872000 是字符串,TYPE 1000:123:160387200 是哈希
    • HSET 1000:123:1603872000 totalscore "100" uid "1000:123:1603872000" price "1000" 这没有给出任何错误。你能显示你输入的确切命令和确切的错误信息吗?
    • HSET 1000:123:1603872000 totalscore "100" uid "1000:123:1603872000" price "1000" same command : (error) WRONGTYPE 针对持有错误值的键的操作
    • 这是因为redis版本不同吗?如果我删除 key 中的最后一个 0 ,我会成功。所以这就是为什么我检查了它的两种类型。 TYPE 1000:123:1603872000 是字符串,TYPE 1000:123:160387200 是散列。
    • 你能运行 HGETALL 1000:123:1603872000 看看结果是什么吗?如果有预先存在的数据,则通过运行 del 1000:123:1603872000 删除 hasmap
    猜你喜欢
    • 2018-06-01
    • 2021-05-25
    • 2019-02-28
    • 1970-01-01
    • 2016-10-24
    • 2016-10-23
    • 2016-05-04
    • 2020-10-01
    • 1970-01-01
    相关资源
    最近更新 更多