赞
踩
Redis
从2.6
版本开始支持Lua
脚本,通过在服务器端嵌入Lua
环境,客户端可以使用Lua
脚本在服务器端原子的执行多个命令。
Redis
服务器会单线程原子性执行Lua
脚本,保证Lua
脚本在处理的过程中不会被任意其它请求打断。
为了在Redis
服务器中执行Lua
脚本,需要在Redis
服务器内嵌一个Lua
环境。因为Redis
在任何时间最多只有一个脚本被放进Lua
环境中执行,所以一个Redis
服务器只需要创建一个Lua
环境。
lua_open
函数创建一个基本的Lua
环境;—— 接下来的步骤都是针对这个Lua
环境操作Lua
环境;—— Lua脚本基于这些函数库进行数据操作Lua
中创建一个redis
表格全局变量table
;—— 包含对Redis
进行操作的函数Redis
自制的随机函数替换Lua
原有的随机函数;Redis
命令的结果进行排序,消除不确定性sinter
、sunion
、sdif
f、smembers
、hkeys
、hvals
、keys
;Lua
脚本执行完一个带有不确定的命令后,会调用table.sort
函数对命令的Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。