https://juejin.cn/post/7324522207715459124?from=search-suggest#heading-99
Redis 可以运行 Lua 脚本,这个功能在 Redis 2.6 版本引入。Lua 脚本在 Redis 中的作用非常重要,它提供了一种能力,可以让开发者在 Redis 服务器上执行复杂的操作,而这些操作是原子性的。这意味着在脚本执行期间,不会有其他 Redis 命令插入执行。
Lua 脚本的作用和好处
1. 原子操作
- Lua 脚本执行是原子性的,Redis 会在执行脚本的过程中不中断地运行整个脚本。这对于需要在多个步骤中修改多个键而不被其他命令打断的场景非常重要。
2. 减少网络开销
- 将一系列的 Redis 命令放入一个脚本中执行,可以减少应用程序与 Redis 服务器之间的通信次数。这在网络延迟敏感的系统中尤其有益。
3. 提高性能
- 由于脚本是在服务器端执行的,这可以显著减少一系列操作的总执行时间,因为它消除了网络延迟和往返时间(RTT)。
4. 复杂逻辑的服务器端执行
- 可以在服务器端执行更复杂的逻辑,这比单独发送多个简单的 Redis 命令更为高效。这使得脚本非常适用于复杂的事务或者数据处理任务。
5. 脚本缓存
- Redis 提供了 SCRIPT LOAD 命令来预加载脚本,这样你就可以在后面通过给定的 SHA1 校验和多次调用该脚本。这意味着 Lua 脚本只需要发送一次到服务器,然后就可以通过它的 SHA1 校验和重复执行,这进一步减少了网络开销。
6. 可重用性
- 由于脚本一旦加载就可以被重复使用,这有助于代码的可重用性
lua脚本有哪些用途