博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lua与Redis的那些事儿
阅读量:6989 次
发布时间:2019-06-27

本文共 743 字,大约阅读时间需要 2 分钟。

这篇文章的主题:

第一、并非介绍lua如何使用?

参考:http://www.codingnow.com/2000/download/lua_manual.html

第二、并非介绍redis如何嵌入lua?

参考:http://blog.nosqlfan.com/html/4099.html

redis结合lua莫过于script load, script flush, script exists, eval, evalsha命令;

作者在使用主从方案时,遇到一个问题:停止从库删掉rdb,重启redis服务,发现之前load的脚本没有从主库同步过来,但是其他的key都已同步;到底怎么回事?

经过对从库的一番测试(主库成功load脚本,从库已正常同步):

场景一:开启rdb,停服,删除rdb,重启服务

结果:脚本不存在

场景二:开启aof,停服,删除aof,重启服务

结果:脚本不存在

场景三:同时开启rdb和aof,停服,删除rdb,重启服务

结果:脚本存在

场景四:同时开启rdb和aof,停服,删除aof,重启服务

结果:脚本不存在

rdb文件结构:

参考:http://redisbook.readthedocs.io/en/latest/internal/rdb.html

经过分析rdb文件结构与rdb文件中的内容后发现,其实问题的根源在于redis的主从同步机制与持久化机制,rdb仅保存key-pair,即保存数据集。

不会保存script命令执行的;但是aof会记录客户端的每一个操作;因此在使用lua脚本时,个人建议使用eval的方式,每次向服务端提交脚本的方式进行。尽量避免script load,尤其是redis使用默认配置的情况下。

。。。待完善。。。

转载地址:http://aykvl.baihongyu.com/

你可能感兴趣的文章
[译] 使用 React 和 ImmutableJS 构建一个拖放布局构建器
查看>>
AFNetworking源码阅读1
查看>>
ENFI下载器地址——百度网盘不限速下载工具
查看>>
栈的应用---后缀表达式
查看>>
吴恩达机器学习系列7:逻辑回归
查看>>
使用Charles搭建反向代理
查看>>
程序员笔记| 详解Eureka 缓存机制
查看>>
在Mac 系统下进行文件的显示和隐藏
查看>>
聊聊hazelcast的PhiAccrualFailureDetector
查看>>
Item 16 Favor composition over inheritance
查看>>
破解bmob云模糊查询收费 微信小程序端
查看>>
mysql索引使用经验总结
查看>>
【浅度渣文】Jackson之jackson-core
查看>>
吴恩达机器学习系列15:学习曲线
查看>>
记录 iView 的表单验证
查看>>
你可能并没有真正理解for-in
查看>>
block初窥
查看>>
扁平化图标的终极设计指南
查看>>
深度学习之线性回归模型
查看>>
【数据库】Redis集群篇
查看>>