Redis在2.6推出了脚本功能,允许开发者使用Lua语言编写脚本传到Redis中执行。使用脚本的好处如下:
- 1.减少网络开销:本来5次网络请求的操作,可以用一个请求完成,原先5次请求的逻辑放在redis服务器上完成。使用脚本,减少了网络往返时延。
- 2.原子操作:Redis会将整个脚本作为一个整体执行,中间不会被其他命令插入。
- 3.复用:客户端发送的脚本会永久存储在Redis中,意味着其他客户端可以复用这一脚本而不需要使用代码完成同样的逻辑。
使用方式:
redis-cli --eval demo.lua key1 key2.. , val1 val2...
redis-cli eval "$(cat demo.lua)" 2 key1 key2.. val1 val2... // 2 key 数量
redis-cli eval "return redis.call('get','a')" 0
demo.lua
local vals = redis.call('get',KEYS[1]);
print(vals)
调用
redis-cli --eval demo.lua a <==>redis> get a