Lua与Redis的那些事儿

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 。。。待完善。。。

这篇文章的主题:

第一、并非介绍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使用默认配置的情况下。



。。。待完善。。。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
缓存 NoSQL Java
【Redis】5、Redis 的分布式锁、Lua 脚本保证 Redis 命令的原子性
【Redis】5、Redis 的分布式锁、Lua 脚本保证 Redis 命令的原子性
60 0
|
2月前
|
算法 NoSQL Java
springboot整合redis及lua脚本实现接口限流
springboot整合redis及lua脚本实现接口限流
75 0
|
20天前
|
NoSQL Java Redis
lua脚本做redis的锁
这段内容是关于使用Redis实现分布式锁的Java代码示例。`RedisLock`类包含`lock`和`unlock`方法,使用`StringRedisTemplate`和Lua脚本进行操作。代码展示了两种加锁方式:一种带有过期时间,另一种不带。还提到了在加锁和解锁过程中的异常处理,并提供了相关参考资料链接。
17 3
|
22天前
|
存储 NoSQL 数据处理
Redis Lua脚本:赋予Redis更强大的逻辑与功能
Redis Lua脚本:赋予Redis更强大的逻辑与功能
|
1月前
|
NoSQL Java 数据库
优惠券秒杀案例 - CAS、Redis+Lua脚本解决高并发并行
优惠券秒杀案例 - CAS、Redis+Lua脚本解决高并发并行
|
2月前
|
NoSQL Java 数据处理
Redis和Spring Boot的绝佳组合:Lua脚本的黑科技
Redis和Spring Boot的绝佳组合:Lua脚本的黑科技
55 0
|
3月前
|
存储 NoSQL 关系型数据库
Redis协议与异步方式(redis网络层、pipeline、事务、lua脚本、ACID特性、发布订阅、hiredis实现同步连接与异步连接)
Redis协议与异步方式(redis网络层、pipeline、事务、lua脚本、ACID特性、发布订阅、hiredis实现同步连接与异步连接)
70 0
|
NoSQL Redis
【Redis】Redis+Lua的使用注意事项
【Redis】Redis+Lua的使用注意事项
|
15天前
|
NoSQL Linux Redis
06- 你们使用Redis是单点还是集群 ? 哪种集群 ?
**Redis配置:** 使用哨兵集群,结构为1主2从,加上3个哨兵节点,总计分布在3台Linux服务器上,提供高可用性。
221 0
|
24天前
|
负载均衡 监控 NoSQL
Redis的集群方案有哪些?
Redis集群包括主从复制(基础,手动故障恢复)、哨兵模式(自动高可用)和Redis Cluster(官方分布式解决方案,自动分片和容错)。此外,还有如Codis、Redisson和Twemproxy等第三方工具用于代理和负载均衡。选择方案需考虑应用场景、数据规模和并发需求。
183 2

热门文章

最新文章