Redis:我如何按键对哈希进行排序?
假设我有一些新闻存储在散列中。我有不同的散列(每个散列代表一条新闻): 我想用keys命令检索所有键,如下所示:Redis:我如何按键对哈希进行排序?,redis,Redis,假设我有一些新闻存储在散列中。我有不同的散列(每个散列代表一条新闻): 我想用keys命令检索所有键,如下所示: KEYS news:* 密钥未排序的问题: news:3 news:1 news:2 我想按正确的顺序检索密钥列表。我不确定散列是否是我需要的结构。但是,根据该报告: Redis散列是字符串字段和字符串值之间的映射,因此它们是表示对象的完美数据类型(例如,具有许多字段(如姓名、姓氏、年龄等)的用户): 将我的新闻对象存储在散列中似乎是个好主意 有什么建议吗?把Redis哈希看作索
KEYS news:*
密钥未排序的问题:
news:3
news:1
news:2
我想按正确的顺序检索密钥列表。我不确定散列是否是我需要的结构。但是,根据该报告:
Redis散列是字符串字段和字符串值之间的映射,因此它们是表示对象的完美数据类型(例如,具有许多字段(如姓名、姓氏、年龄等)的用户):
将我的新闻对象存储在散列中似乎是个好主意
有什么建议吗?把Redis哈希看作索引文档
HSET news:1 title levy_breaks
HSET news:1 type breaking_news
HSET news:1 byline alphazero
HSET news:1 date 04:25:2011
HSET news:1 content <the story>
HSET news:2 ...
..
HSET新闻:1篇标题
HSET新闻:1类突发新闻
HSET新闻:1署名alphazero
HSET新闻:1日期4:25:2011
HSET新闻:1内容
HSET新闻:2。。。
..
在上面的例子中,news:1
是“哈希键”,后面是“哈希字段”,最后是它的关联值
也就是说,似乎您只是想对“哈希键”进行排序
使用MULTI/EXEC
构造来设置新闻项的所有字段(有n个字段),最后还将哈希键(例如,您的新闻项)添加到排序集。或者,您也可以将它们添加到列表中,然后在该列表上使用排序
命令
.您可以做的是存储一组或一组现有的新闻项目。例如,当您创建一个新的新闻项目时,比如说
news:4
,您可以将索引4添加到一个集合中,比如说list:news
,该集合现在将具有[1,2,3,4]
现在假设您的新闻哈希结构是date,author。在此基础上,您可以执行以下操作:
sort list:news get *->some_value_a ->*->some_value_b
是否可以检测何时将某个键添加到我的字典中,然后将该键添加到我的排序列表中?如果没有该功能,我如何确保我的排序列表在任何时候都包含哈希中的完整键?谢谢。Redis支持发布/订阅语义。因此,您可以在multi/exec块中添加一个publishthenews:xxx键(例如,到“news:channel”)。看见一定要问redis google小组,因为很可能有更有效的方法来完成这项工作。如果你想对密钥进行排序,你确定这是一个哈希而不是你想要的列表吗?@Theo,这是我问题的一部分。见下文;)
sort list:news get *->some_value_a ->*->some_value_b