gpt4 book ai didi

ruby - Redis 哈希或 key 替换

转载 作者:可可西里 更新时间:2023-11-01 11:18:13 28 4
gpt4 key购买 nike

如果我在 redis 中存储了一个对象散列,请说这个散列:

 { a: 1, b: 2, c: 3, d: 4, e: 5 }

如果我知道我的哈希值 d 已更改为 10,我是否可以只更新该 Redis 哈希键值,而不是获取哈希,修改并将其写回 Redis?

我有一个缓存在 redis 中的对象状态,基本上一旦状态发生变化,我就会寻找刷新缓存的有效方法。

有更好的方法吗?

你好,我试过了:

a = { a: 1, b: 2, c: 3, d: 4, e: 5 }
REDIS.mapped_hmset('key', a)

所以这是可行的:

b = REDIS.hgetall('key')
b['d'] = 10
REDIS.mapped_hmset('key', b)

但如果可能的话,我正在寻找修改 redis 中的键的方法,或者其他方法。

最佳答案

如果您要更改(或添加)散列中的单个值,可以使用 HSET 命令。这不会从 Redis 中“获取”哈希值(将其返回给您),它只会修改它。

在您的情况下,命令将是 HSET YourHashName d 10

HSET Documentation on redis.io

如果您发现要同时更改多个值,请使用 HMSET。此命令比多次调用 HSET 来执行相同的操作更有效,因为它在网络上的通信较少。

HMSET Documentation on redis.io

请记住,在散列中添加或更改数据时,您无需先读取/获取散列(或任何单独的散列键值)。此外,如果在设置其数据时散列不存在,则将创建散列而不是返回错误。

关于ruby - Redis 哈希或 key 替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41703239/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com