Redis 使用 Lua 脚本介绍

Redis 提供了非常丰富的指令集。
但是某些特定场景下,需要扩充若干指令原子性执行时,仅使用原生命令便无法完成。
Redis 为这样的用户场景提供了 Lua 脚本支持,
用户可以向 Redis 服务器发送 Lua 脚本来执行自定义动作,获取脚本的响应数据。
Redis 服务器会单线程原子性执行 Lua 脚本,保证 Lua 脚本在处理的过程中不会被其它请求打断。

Redis 在 2.6 版本推出了 Lua 脚本功能,允许开发者使用 Lua 语言编写脚本传到 Redis 中执行。
使用 Lua 脚本的好处如下:

  • 减少网络开销:可以将多个请求通过脚本的形式一次发送,减少网络时延。
  • 是原子操作:Redis 会将整个脚本作为一个整体执行,中间不会被其他请求插入。

因此在 Lua 脚本运行过程中,无需担心会出现竞态条件,无需使用事务。

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

    使用步骤