happy_boy 发表于 2018-11-6 12:13:49

redis学习(5) - 事务

  1、redis中的事务是一组命令的集合。一个事务中的命令,要么都执行,要么都不执行
  2、
  MULTI    告诉redis:下面我发给你的命令属于同一个事务,先不要执行,而是把它们暂时存起来
  OK
  SADD "user:1:followers" 2   发送命令
  QUEUED                返回QUEUED表示这两条命令已经进入等待执行的事务队列中了
  SADD "user:2:followers" 1
  QUEUED
  EXEC                        执行命令
  1)(integer) 1
  2)(integer) 1
  3、错误处理
  (1)语法错误命令不存在或者命令参数的个数部队
  一旦发现错误,该事务中正确的命令也不会执行
  (2)运行错误命令执行时出现的错误比如散列类型的命令操作集合类型的键,执行之前redis是无法发现的
  一旦发现错误,该事务中错误的命令不会执行,正确的命令还会执行
  4、WATCH命令监控
  5、UNWATCH命令取消监控
  6、竞态条件
  7、生存时间
  EXPIRE命令   设置键的生存时间
  TTL命令查看键的剩余生存时间   键不存在时,TTL返回-1;没有为键设置生存时间(永久存在)时,也会返回-1
  PERSIST命令设置键为永久
  SET/GETSET命令会为键重新赋值,并清除键的生存时间
  EXPIREAT 与 EXPIRE 差别:前者使用Unix时间作为第二个参数表示生存时间
  PEXPIREAT/EXPIREAT   差别:前者单位为毫秒
  BRPOP命令:和RPOP命令类似,区别是当列表中没有元素是BRPOP命令会一直阻塞连接,知道有新元素加入。
  BLPOP命令:和BRPOP区别在于从队列中去元素时BLPOP会从队列左边取。

页: [1]
查看完整版本: redis学习(5) - 事务