我有一些名为 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/