redis 使用 KEYS 的数字范围

标签 redis

我有一些名为 Events:21039-lat:101.2321-long:24.3143 的键。现在,我想搜索所有键,它是这样的:Events:*-lat:[99.2321 和 103.2321 之间的任何数字]-long:[23.3143 和 25.3143 之间的任何数字] .

我决定使用 key 的原因是因为写入的事件不多,因此我可以有很多读取从属,否则我将不得不以高度不可扩展的方式进行此计算 w . mysql。有/没有 redis 有更好的方法吗?

最佳答案

不建议在生产环境中使用 key 。它的时间复杂度是 O(N),其中 N 是数据库中键的数量。 (来源:http://redis.io/commands/keys)

您可以在 set 中维护一堆 Events:* 键.使用 sMembers() 读取 set 并获取这些键。

如果您担心额外的网络调用,请使用管道。

关于redis 使用 KEYS 的数字范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20749635/

相关文章:

javascript - 锁的基本逻辑——互斥

node.js - Redis 队列 : call BLPOP/BRPOP inside a loop?

redis - 如何结束Redis监控

r - 如何在使用 rredis 从 R 编写的 Redis 中实现数据压缩以减少内存使用?

中间副本崩溃时的 Redis slaves(replicas) 复制链

node.js - 为什么 session 存储有静态超时/maxAge

redis - 我可以根据redis服务器的当前系统时间在redis中设置一个值吗?

couchdb - 速率限制 - 将 CouchDB 与 Redis 一起使用或单独使用 CouchDB

c# - 如何使 Redis 缓存在部署在 IIS Express 上但在本地主机上工作的 asp.net 核心 Web 上工作

redis - 使用redis存储时间序列/历史数据