首页 > 代码库 > Redis入门指南-笔记-进阶
Redis入门指南-笔记-进阶
4.1 事务
(1) 事务是一组命令的集合
(2) 事务同命令一样是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行。
(3) 格式:
MULTI //告诉Redis,下面我给你的命令属于同一个事务,你先不要执行,而是把他们暂时存储起来;
命令1;
命令2;
........
EXEC //告诉Redis将等待执行的事务队列中的所有命令按照发送顺序依次执行
//事务中的命令是在EXEC之后才执行
//EXEC命名返回值是多行字符串
(4) Redis的事务没有关系数据库事务提供的回滚(rollback)功能---将一个事务已经完成的的对数据库的修改操作撤销
(5) watch:
1) 事务执行后的结果都是一起返回的,无法将前一条命令的结果作为后一条命令的参数
2) 有时想先获得一条命令的返回值,然后再根据这个值执行下一条命令
3) WATCH命令可以监控一个或多个键 ,一旦其中有一个键被修改或者删除,之后的事务就不会执行;
监控一直持续到EXEC命令
4)执行EXEC命令后会取消对所有键的监控,如果不想执行事务中的命令,也可以用UNWATCH来取消监控。
4.2 生存时间
(1) 应用场景:会遇到一些有时效的数据,比如限时优惠活动、缓存或验证码等,过了一定的时间就需要删除这些数据。
(2) Redis中可以使用EXPIRE命令设置一个键的生存时间,到时间后Redis会自动删除它。
EXPIRE key seconds(单位为秒,必须为整数)
返回1:表示设置成功
返回0:表示键不存在或设置失败
(3) TTL命令:知道一个键还有多久的时间会被删除
返回值-1:表示键被删除而不存在或者没有为键设置生存时间(即永久存在)。
(4) PERSIST:取消键的生存时间设置(即将键恢复成永久的)
如果生存时间被成功清除,则返回1;否则返回0(键不存在或键本身就是永久的);
(5) 使用SET或GETSET命令为键赋值也会同时清除键的生存时间;
(6) 使用EXPIRE命令会重新设置键的生存时间
(7) PEXPIRE命令与EXPIRE命令的区别是前者时间设置更加精确为毫秒
PTTL命令以毫秒为单位返回键的剩余时间
Redis入门指南-笔记-进阶