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会从队列左边取。

你可能感兴趣的:(redis,事务)