我在redis散列中存储了一些键值对。
hmset employee:1 name clarke age 24 status 1
hmset employee:2 name danne age 42 status 0
hmset employee:3 name sachin age 38 status 1
hmset employee:4 name pasty age 27 status 1
hmset employee:5 name cake age 39 status 0
hmset employee:6 name mike age 20 status 1

hmget employee:1 name age status这得到了个别员工,但我如何才能进入范围。我的意思是在上面的例子中有6份员工记录。那么,我如何具体说明我需要1-3或3-6记录的限制。
类似于MySQL中的限制2 4
发布于 2015-12-08 12:17:57
如果您有一组it,则可以对其使用排序。
hmset employee:1 name clarke age 24 status 1
sadd employees 1
hmset employee:2 name danne age 42 status 0
sadd employees 2
hmset employee:3 name sachin age 38 status 1
sadd employees 3
hmset employee:4 name pasty age 27 status 1
sadd employees 4
hmset employee:5 name cake age 39 status 0
sadd employees 5
hmset employee:6 name mike age 20 status 1
sadd employees 6为了获得数据:
> sort employees get # get employee:*->name get employee:*->age get employee:*->stat
us
1) "1"
2) "clarke"
3) "24"
4) "1"
5) "2"
6) "danne"
7) "42"
8) "0"
9) "3"
10) "sachin"
11) "38"
12) "1"
13) "4"
14) "pasty"
15) "27"
16) "1"
17) "5"
18) "cake"
19) "39"
20) "0"
21) "6"
22) "mike"
23) "20"
24) "1"发布于 2015-12-03 07:40:32
在Redis中,您提到的散列可以看作是不同的顶级键。因此,不可能给出一个范围。如果你随身带了散列名,你就得一个一个地得到它。
但是,如果您没有哈希名称,那么Redis在keys命令中支持regex,您可以创建一个适当的regex来传递这个命令,以获得您想要的散列名称,然后逐个获取。
但是,如果您仍然希望在1调用中执行此操作,Redis还提供了运行Lua脚本的支持,在那里您可以一次获取所有记录。这里有一个指向教程的链接
https://stackoverflow.com/questions/34060039
复制相似问题