数据库08redis其他

Redis中为什么引入Lua脚本?

Redis是高性能的key-value内存数据库,在部分场景下,是对关系数据库的良好补充。
Redis提供了非常丰富的指令集,官网上提供了200多个命令。但是某些特定领域,需要扩充若干指令原子性执行时,仅使用原生命令便无法完成
Redis 为这样的用户场景提供了 lua 脚本支持,用户可以向服务器发送 lua 脚本来执行自定义动作,获取脚本的响应数据。Redis 服务器会单线程原子性执行 lua 脚本,保证 lua 脚本在处理的过程中不会被任意其它请求打断。
Redis意识到上述问题后,在2.6版本推出了 lua 脚本功能,允许开发者使用Lua语言编写脚本传到Redis中执行。使用脚本的好处如下:

1
2
3
减少网络开销。可以将多个请求通过脚本的形式一次发送,减少网络时延。
原子操作。Redis会将整个脚本作为一个整体执行,中间不会被其他请求插入。因此在脚本运行过程中无需担心会出现竞态条件,无需使用事务。
复用。客户端发送的脚本会永久存在redis中,这样其他客户端可以复用这一脚本,而不需要使用代码完成相同的逻辑。

什么是Lua?

Lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放。
其设计目的就是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。因为广泛的应用于:游戏开发、独立应用脚本、Web 应用脚本、扩展和数据库插件等。
比如:Lua脚本用在很多游戏上,主要是Lua脚本可以嵌入到其他程序中运行,游戏升级的时候,可以直接升级脚本,而不用重新安装游戏。

redis集群的三种模式(主从模式,哨兵模式,Cluster 集群)

参考

Redis中使用Lua脚本(一):https://zhuanlan.zhihu.com/p/77484377
redis集群的三种模式:https://blog.csdn.net/zhangge3663/article/details/106617273
Redis集群详解:https://blog.csdn.net/miss1181248983/article/details/90056960#t2

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×