Redis increment keyN or key:N



在Redis中,可以存储增量值,也可以增加键的值。像

127.0.0.1:6379> set _inc 0
OK
127.0.0.1:6379> INCR _inc
(integer) 1
127.0.0.1:6379> INCR _inc
(integer) 2
127.0.0.1:6379> get _inc
"2"

或者我们可以保存像这样的项目

item:UNIQUE-ID
item:UNI-QUE-ID

但是如何保存具有增量N ID的项目,如:

item:1
item:2
item:3
item:4
...

到目前为止,我找到了LUA Script 的解决方案

127.0.0.1:6379> eval 'return redis.call("set", "item:" .. redis.call("incr","itemNCounter"), "item value")' 0
OK
...
127.0.0.1:6379> keys item:*
1) "item:10"
2) "item:14"
3) "item:13"
4) "item:6"
5) "item:15"
6) "item:9"
7) "item:4"
8) "item:1"
9) "item:5"
10) "item:3"
11) "item:12"
12) "item:7"
13) "item:8"
14) "item:11"
15) "item:2"

问题:有没有一种方法可以在不运行Lua脚本或可靠方法的情况下实现它?

我预计会有一个Redis命令来实现它。

问题:有没有一种方法可以在不运行Lua脚本或可靠方法的情况下实现它?

不,没有。但是,由于Redis 2.6版本和LUA脚本是Redis中的一流公民,因此支持EVAL

相关内容

最新更新