gpt4 book ai didi

sorting - 使用 SORT 命令从 Redis 中的排序集中获取 HASH 字段

转载 作者:IT王子 更新时间:2023-10-29 06:09:58 26 4
gpt4 key购买 nike

例如,在 redis-cli 中,我尝试创建一个这样的排序集:

zadd sortedset 1 1 2 2 3 3

我创建了一个这样的散列:

hset data 1 hello 
hset data 2 goodbye
hset data 3 sir

我的目标是将标识符存储在已排序的集合中,并获取存储在 data 散列中的字符串,该散列按已排序的集合排序。

这是我到目前为止尝试过的:

sort sortedset by nosort get data->*

...输出:

1) (nil)
2) (nil)
3) (nil)

实际上我期望 * 通配符应该是存储在所谓的排序集中的标识符之一,但它似乎没有对排序集中的每个具体标识符执行替换.

我是在尝试以正确的方式解决问题,还是有其他方法可以解决这个问题?

最佳答案

从本质上讲,您是对的,但是 SORT 命令的当前实现只接受散列取消引用左侧的通配符(请参阅 sort.hash 中的 lookupKeyByPattern)。 c).这就是 atm 的方式,而不是 SORT,为此使用 Lua 脚本。例如,这是一个肮脏的快速方法:

$ redis-cli eval "return redis.call('HMGET', KEYS[2], unpack(redis.call('ZRANGEBYSCORE', KEYS[1], '-inf', '+inf')))" 2 sortedset data
1) "hello"
2) "goodbye"
3) "sir"

关于sorting - 使用 SORT 命令从 Redis 中的排序集中获取 HASH 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30370000/

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