重点回顾
-
在通常情况下,程序需要执行的Redis命令越多,需要进行的网络通信次数也会越多,程序的执行速度也会变得越慢。通过使用Redis的流水线特性,程序可以一次把多个命令发送给Redis服务器,这可以将执行多个命令所需的网络通信次数从原来的N次降低为1次,从而使得程序的执行效率得到显著提升。
-
通过使用Redis的事务特性,用户可能将多个命令打包成一个命令执行:当事务成功执行时,事务中包含的所有命令都会被执行;相反,如果事务执行失败,那么它包含的所有命令都不会被执行。
-
Redis事务总是具有ACID性质中的原子性、一致性和隔离性,至于是否具有耐久性则取决于Redis使用的持久化模式。
-
流水线与事务虽然在概念上有相似之处,但它们并不相等:流水线的作用是打包发送多条命令,而事务的作用则是打包执行多条命令。
-
为了优化事务的执行效率,很多Redis客户端都会把待执行的事务命令缓存在本地,然后在用户执行EXEC命令时,通过流水线一次把所有事务命令发送至Redis服务器。
-
通过同时使用WATCH命令和事务,用户可以构建一种乐观锁机制,这种机制可以确保事务只会在指定键没有发生任何变化的情况下执行。