今天写代码使用了multi, redisdoc.com里面这样描述他:
标记一个事务块的开始。
事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行。
在使用时我在函数调用外层里面使用了 multi ,开启了 批量执行的 开关,但是 在函数之后 并未 显式 的进行 exec 调用,粗略的以为 只要 PHP 进程结束,redis-server 应该会进行 执行,结果并没有。
谨以此文记下这个坑, multi 之后 必须 要 显式 的调用 exec , 否则redis-server 只会放到 队列 ,而并不执行队列里面的 命令。
参考链接:
http://redisdoc.com/transaction/multi.html?highlight=multi (redisdoc里面 multi命令的描述)