REDIS中有任何快速命令可以让我执行以下操作吗?
我想将键Y的值设置为等于键X的值。
我如何从Redis Client执行此操作。
我使用标准的Redis-cli客户端。
基本上,我正在寻找以下等效项-
Y.Val() = X.Val()
您可以使用Lua脚本执行此操作:
redis.call('SET', KEYS[2], redis.call('GET', KEYS[1])); return 1;
下面的示例使用SCRIPT LOAD创建脚本,并使用EVALSHA传递以下参数来调用该脚本:
输出:
redis 127.0.0.1:6379> set src.key XXX OK redis 127.0.0.1:6379> get src.key "XXX" redis 127.0.0.1:6379> SCRIPT LOAD "redis.call('SET', KEYS[2], redis.call('GET', KEYS[1])); return 1;" "1119c244463dce1ac3a19cdd4fda744e15e02cab" redis 127.0.0.1:6379> EVALSHA 1119c244463dce1ac3a19cdd4fda744e15e02cab 2 src.key target.key (integer) 1 redis 127.0.0.1:6379> get target.key "XXX"
与仅执行GET和s SET相比,它确实有很多东西,但是一旦加载了脚本(并存储了SHA1),便可以重复使用它。