redis lua
2014-11-29 09:20
113 查看
由于redis中内置了一个lua解释器,使得redis可以执行一段lua代码,通过使用EVAL来执行(咱们这边很少用到).
今天在对hashtable进行匹配的时候研究了一下,感觉很神奇,下面是我们可能会用到的一些case,有兴趣的可以看下。
1. 这是是一个对redis的hashtable的field进行模糊匹配,并返回field对应的value的一个例子:
2. 利用这个特性,我们还可以在redis做一些简单的逻辑,比如下面的(如果key1存在,那么就'set key2 value2',并返回OK,否则返回ERROR):
3. 因为redis很少会出现命令执行失败(除非网络、内存的一些限制),所以我们可以利用EVAL可是实现一个不是很严格的事务.
下面这个例子能保证:命令'set key1 value1' 和 命令'set key2 value2' 同时成功的时候返回'OK',否则返回nil:
4. 利用EVAL实现按顺序执行一串命令:
5. 为了节省脚本所占带宽,可以通过'SCRIPT LOAD'命令将一个脚本装载到redis中,然后通过'EVALSHA'来执行这个脚本:
6. 其他:
1). 利用EVAL执行的脚本具有原子性;
2). EVAL执行的脚本中不允许使用全局变量;
3). redis内置的lua解释器预加载了这些lua库:base、table、string、math、debug、cjson、cmsgpack等;
4). 在脚本中可以写redis日志:redis.log(loglevel, message);
5). 为了防止脚本中出现死循环,可以通过配置'lua-time-limit'来限制脚本执行的最长时间;
6). TODO。
7. ref:
http://redis.readthedocs.org/en/latest/script/eval.html
今天在对hashtable进行匹配的时候研究了一下,感觉很神奇,下面是我们可能会用到的一些case,有兴趣的可以看下。
1. 这是是一个对redis的hashtable的field进行模糊匹配,并返回field对应的value的一个例子:
2. 利用这个特性,我们还可以在redis做一些简单的逻辑,比如下面的(如果key1存在,那么就'set key2 value2',并返回OK,否则返回ERROR):
3. 因为redis很少会出现命令执行失败(除非网络、内存的一些限制),所以我们可以利用EVAL可是实现一个不是很严格的事务.
下面这个例子能保证:命令'set key1 value1' 和 命令'set key2 value2' 同时成功的时候返回'OK',否则返回nil:
4. 利用EVAL实现按顺序执行一串命令:
5. 为了节省脚本所占带宽,可以通过'SCRIPT LOAD'命令将一个脚本装载到redis中,然后通过'EVALSHA'来执行这个脚本:
6. 其他:
1). 利用EVAL执行的脚本具有原子性;
2). EVAL执行的脚本中不允许使用全局变量;
3). redis内置的lua解释器预加载了这些lua库:base、table、string、math、debug、cjson、cmsgpack等;
4). 在脚本中可以写redis日志:redis.log(loglevel, message);
5). 为了防止脚本中出现死循环,可以通过配置'lua-time-limit'来限制脚本执行的最长时间;
6). TODO。
7. ref:
http://redis.readthedocs.org/en/latest/script/eval.html
相关文章推荐
- php+redis+lua实现分布式锁
- 【redis/lua】Lua: 给 Redis 用户的入门指导
- Redis高级特性之Lua脚本
- 使用Nginx+Lua+Redis构建灰度发布环境
- redis-lua(一):Hello,World!
- Lua在Redis中的应用—分布式锁,限制访问次数
- Redis源码学习:Lua脚本
- Redis学习-LUA脚本
- Redis中Lua脚本相关命令及注意事项
- lua开发--lua模块和redis
- redis翻译_redis lua脚本
- Lua: 给 Redis 用户的入门指导
- Redis系列二 - 通过redis命令和lua实现分布式锁
- Redis锁, SETNX, lua脚本和eval函数, CyclicBarrier栅栏
- lua-redis
- redis-lua安装笔记
- 在Spring中使用Redis Lua脚本批量删除缓存
- Redis进阶实践之七Redis和Lua初步整合使用
- Redis 的Lua Script脚本功能
- Redis的Lua扩展