我们先分析场景,通过多种方案对比,选用了redis+lua的组合来满足我们的业务需要。利用redis单线程的特点,以及redis2.6版本后开始对lua的支持,我们采用redis执行lua脚本来确保我们查询+修改的串行执行。后面我们展示了code的实现案例,以及介绍了lua脚本的一些注意事项,可以依葫芦画瓢形式自己实现自己的需求。综合而言,我们分析场景应先分析其核心问题,然后利用一些更简洁的方法或小技巧来落地。
在一些互联网项目中,难免会设计到一些原子性 *** 作,例如实时交易量的累加,分布式锁的实现,那么采用lua脚本可以帮助我们完成一个原子性的 *** 作
Redis会使用相同的 Lua 解释器来运行所有命令。Redis 还保证以原子方式执行脚本:在执行脚本时不会执行其他脚本或 Redis 命令。
使用Lua脚本的好处有
基本用法
例如
返回结果
使用Lua实现分布式锁
加锁
解锁
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)