点 Redis 8 来了——而且它是开源的

了解更多

第11章:使用Lua为Redis编写脚本

返回主页

第11章:使用Lua为Redis编写脚本

本章涵盖

  • 不编写C代码添加功能
  • 使用Lua重写锁和信号量
  • 淘汰 WATCH/MULTI/EXEC
  • 使用Lua对LIST进行分片

在过去的几章中,你已经积累了一套可用于
现有应用程序的工具,同时也遇到了可以用来解决
各种问题的技术。本章的内容与此类似,但会颠覆你的一些
固有观念。从 Redis 2.6 版本开始,Redis 包含了使用 Lua 编程语言的服务器端脚本
功能。这使你可以在 Redis 内部执行各种操作,
既可以简化代码,又可以提高性能。

在本章中,我们将首先讨论 Lua 相对于在客户端执行操作的一些优势,
并展示第 8 章社交网络中的一个示例。然后,我们将回顾第 4 章和第 6 章的两个问题,展示使用 Lua 如何
消除对 WATCH/MULTI/EXEC 事务的需求。
之后,我们将重新审视第 6 章中的锁和信号量,展示如何使用 Lua 实现它们,以便
公平地让多个客户端访问并提高性能。
最后,我们将使用 Lua 构建一个分片的 LIST,它支持许多(但不是所有)标准的
LIST 命令的等效功能。
让我们开始学习一些我们可以使用 Lua 脚本实现的

功能。
信任