redis自带的lua脚本
127.0.0.1:6379> hget team wyc
"{\"name\":\"wyycc\",\"age\":\"444\"}"
想要通过redis官方的lua脚本拓展来传递name,age等直接返回对应的值。如果传递name,age等redis的hash中存在的value,则返回其结果,如果不存在返回nil,使得传入和返回结果一一对应。
- redis的lua拓展自带了cjson等库,可以很方便的处理json数据。
- 当返回table中有nil时停止,后续的数据无法返回
- nil在lua的table中相当删除某个key,table.insert()是无法插入到table中的
- 想要返回nil,则插入lua的FALSE。Lua boolean false -> Redis Nil bulk reply
127.0.0.1:6379> eval "return {1,2,3.3333,'foo',nil,'bar'}" 0
1) (integer) 1
2) (integer) 2
3) (integer) 3
4) "foo"
后面的0表明传入几个参数,KEYS,ARGV两个table中接受传入的参数
127.0.0.1:6379> eval "local substring = redis.call('hg