我在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
答案 0 :(得分:2)
您提到的哈希值可以被视为Redis中不同的顶级键。因此,不可能给出范围。如果您有哈希名称,那么您必须逐个获取哈希名称。
但是,如果您没有哈希名称,Redis支持keys
命令中的正则表达式,您可以使用适当的正则表达式传递此命令以获取所需的哈希名称,然后获取一个一个人。
但是,如果您仍想在1次调用中执行此操作,Redis还提供了运行Lua脚本的支持,您可以在那里一次性获取所有记录。这是指向tutorial
的链接答案 1 :(得分:1)
如果您有一组ID,可以使用SORT。
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"