首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis散列或键替换

Redis散列或键替换
EN

Stack Overflow用户
提问于 2017-01-17 17:19:13
回答 1查看 5.8K关注 0票数 1

如果我在redis中存储了一个对象哈希,那么说这个散列:

代码语言:javascript
复制
 { a: 1, b: 2, c: 3, d: 4, e: 5 }

如果我知道我的散列值d已更改为10,我是否可以只更新这个redis散列键值,而不是获取哈希值、修改它并将其写回redis?

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

有更好的方法吗?

你好我试过这个

代码语言:javascript
复制
a = { a: 1, b: 2, c: 3, d: 4, e: 5 }
REDIS.mapped_hmset('key', a)

因此,这是可行的:

代码语言:javascript
复制
b = REDIS.hgetall('key')
b['d'] = 10
REDIS.mapped_hmset('key', b)

但是,如果可能的话,我正在寻找一些东西来修改redis中的键,或者替代方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-17 17:37:03

如果希望在散列中更改(或添加)单个值,则可以使用HSET命令。这并不是从redis中“获取”散列(将其返回给您),它只修改它。

在您的例子中,命令将是HSET YourHashName d 10

关于redis.io的HSET文档

如果您发现正在同时更改多个值,请使用HMSET。这个命令比多个HSET调用执行相同的任务更有效,因为它在网络上的聊天性较低。

redis.io上的HMSET文档

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41703239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档