请检查以下命令,
redis /tmp/redis.sock> set s1 String1
OK
redis /tmp/redis.sock> set s2 String2
OK
redis /tmp/redis.sock> set s3 String3
OK
redis /tmp/redis.sock> LPUSH list s1 s2 s3
(integer) 3
redis /tmp/redis.sock> LRANGE list 0 -1
1) "s3"
2) "s2"
3) "s1"
redis /tmp/redis.sock>
当我尝试在redis列表中推送变量时,该值被视为字符串。是否有将变量添加到列表的解决方法?
感谢。
答案 0 :(得分:2)
Redis列表中的元素是字符串。您不能嵌套数据结构或在它们之间创建引用。
答案 1 :(得分:1)
如果要使用变量,可以使用Lua
脚本,
eval "redis.call('lpush', 'list', KEYS[1], KEYS[2], KEYS[3])" 3 String1 String2 String4
参考this,
> eval "s1 = 'String1'" 0
> eval "s2 = 'String2'" 0
> eval "s3 = 'String3'" 0
> eval "redis.call('lpush', 'list', s1, s2, s3)" 0
Redis-cli可能不允许创建全局变量s1
,s2
,s3
。要获得许可,请参阅此https://stackoverflow.com/a/19998708/6048928