redis - 怎样给key排序?

【字号: 日期:2022-08-27浏览:41作者:雯心

问题描述

有如下场景,key:A,B,C,准备将他们的组合做key:

A: 1B: 2C: 3AB: 4AC: 5BC: 6ABC: 7

我想询匹配次数最多的key,比如我想查找A,C那么,排序后的结果:

AC

ABC

A

C

这样的在redis里怎么排序查找啊?还是我的设计就有问题啊?请教。

问题解答

回答1:

Redis 是轻查询的 NoSQL ,除了基于键名的查询,几乎没有其他的查询方式,不适合使用 Redis 做重查询的数据库,如果需要丰富的查询,建议使用 MongoDb , 相比较而言 Redis 更适合高速读写,没有过多逻辑依赖的缓存系统。

另外,你这个需求,可以把参与排序的数据放到同一个 hash 里,使用时读出所有数据,再在程序中进行排序。不过这只是个折衷的办法。

回答2:

使用redis内置的sortset类型存储数据吧,它支持sorce下标 相当于索引 有强大的查询 排序 范围查询能力 具体可以看redis关于sortset类型的文档

回答3:

Redis只支持一种模糊查询,那就是keys,根据关键字进行查询,其他的任何数据结构都不支持,所以你的需求单纯的通过Redis肯定是无法实现的。可以考虑其他NoSql产品,或者通过建立索引来实现。

相关文章: