Contents
  1. 1. 事务
  2. 2. Watch的使用
  3. 3. Lua脚本

事务

事务命令:MULTI 、 EXEC 、 DISCARD 和 WATCH

  • MULTI 命令用于开启一个事务,它总是返回 OK
  • MULTI 执行之后, 客户端可以继续向服务器发送任意多条命令, 这些命令不会立即被执行, 而是被放到一个队列中
  • 当 EXEC命令被调用时, 所有队列中的命令才会被执行。
  • 通过调用 DISCARD , 客户端可以清空事务队列, 并放弃执行事务。

Watch的使用

如果在 WATCH 执行之后, EXEC 执行之前, 有其他客户端修改了 mykey 的值, 那么当前客户端的事务就会失败。 程序需要做的, 就是不断重试这个操作, 直到没有发生碰撞为止。

使用无参数的 UNWATCH 命令可以手动取消对所有键的监视。 对于一些需要改动多个键的事务, 有时候程序需要同时对多个键进行加锁, 然后检查这些键的当前值是否符合程序的要求。 当值达不到要求时, 就可以使用 UNWATCH 命令来取消目前对键的监视, 中途放弃这个事务, 并等待事务的下次尝试。

WATCH mykey
val = GET mykey
val = val + 1
MULTI
SET mykey $val
EXEC

Lua脚本

特点:效率高、有事务控制,支持各种if、for循环等操作
windows环境下 test.lua,然后cd到 执行路径下执行| redis-cli –eval test.lua 2 username age , jack 20 |

return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}

Contents
  1. 1. 事务
  2. 2. Watch的使用
  3. 3. Lua脚本