gpt4 book ai didi

redis - Redis-ZRANGEBYSCORE,其 key 与正则表达式匹配

转载 作者:行者123 更新时间:2023-12-03 06:45:24 25 4
gpt4 key购买 nike

我正在尝试获取排序集中的最佳键的值。
这是我目前的查询:

ZREVRANGEBYSCORE genre1 +inf -inf WITHSCORES LIMIT 0 1 

这是我的集合中的一个添加示例:
ZADD "genre1|genre2|genre3" 3.25153 "film"

我想以这种方式使用查询
ZREVRANGEBYSCORE *genre1* +inf -inf WITHSCORES LIMIT 0 1 

匹配包含“... | genre1 | ...”的键,不仅匹配“genre1”之类的键。
任何帮助将不胜感激

最佳答案

这可以通过两个或三个步骤来完成:

1)使用 SCAN KEYS查找与您的模式匹配的 keys

SCAN 0 MATCH "*genre1*"
1) "9"
2) 1) "genre1|genre2|genre3"
2) "genre1|genre4"

2)对于每个键,请使用 TYPE 来测试它是否为排序集。仅当您可能在数据库上具有其他genre1键时,这才重要
TYPE "genre1|genre4"
zset

3)为每个键运行 ZREVRANGEBYSCORE <key> +inf -inf WITHSCORES LIMIT 0 1

参见 this answer on how you can SCAN for a given type。您可以修改Lua脚本以包括 ZREVRANGEBYSCORE,并在单个调用中自动获得结果。

最后,考虑根据您的情况考虑是否最好存储类型组合。您可以按流派使用排序集,然后使用 ZUNIONSTORE ZINTERSTORE 获得评分组合。

关于redis - Redis-ZRANGEBYSCORE,其 key 与正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59861912/

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