Redis LUA

Redis LUA

所以内容不定时更新(追加),所有相关主题内容只更新一篇

本文最新版本 链接地址
对应的最新实战代码地址:

redis.call(); 将返回一个错误给调用者
redis.pcall(): 将捕获的错误以 LUA 表的形式返回。

Redis Lua 优势

1.减少网络开销:本来5次网络请求的操作,可以用一个请求完成,原先5次请求的逻辑放在redis服务器上完成。使用脚本,减少了网络往返时延。

2.原子操作:Redis会将整个脚本作为一个整体执行,中间不会被其他命令插入。

3.复用:客户端发送的脚本会永久存储在Redis中,意味着其他客户端可以复用这一脚本而不需要使用代码完成同样的逻辑。

Redis 注意事项

  1. Lua 无返回值导致阻塞时,整个 Redis 不可用。

  2. Lua 实现核心内容即可,言简意赅。

  3. Lua 中不应该存在常量 Key,这样会导致每次执行时都会在脚本字典中新建一个条目,应该使用全局变量数组 KEYS 和 ARGV, KEYS 和 ARGV 的索引都从 1 开始。

  4. 传递给lua脚本的键列表应该包括可能会读取或者写入的所有键。传入全部的键使得在使用各种分片或者集群技术时,其他软件可以在应用层检查所有的数据是不是都在同一个分片里面。另外集群版redis也会对将要访问的key进行检查,如果不在同一个服务器里面,那么redis将会返回一个错误。(决定使用集群版之前应该考虑业务拆分),参数列表无所谓。。

  5. lua 和 redis 命令,事务一样都是原子,的已经进行了数据写入的 lua 脚本将无法中断,只能使用 SHUTDOWN NOSAVE 杀死 Redis 服务器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值