事物
语法:
multi
命令1
命令2
exec
redis在收到multi命令后,会将后面输入的命令存储而不执行,直到收到exec命令再执行。每条命令后返回的QUEUED表示该命令已经进入等待执行的事务队列中。redis事物还能保证事物内的命令依次执行而不被其它命令插入。
错误处理
1)语法错误
事物内所有的命令都不会执行。
2)运行错误
redis事物并不支持回滚。
watch命令
用于监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断,即不执行。
过期时间
expire
a)设置过期时间
expire key seconds 单位秒
pexpire key millisecond 单位毫秒
b)查看剩余时间
ttl key 返回秒
pttl key 返回毫秒
未过期返回剩余时间;已过期返回-2;未设置过期时间返-1;
persist
persisi key 取消过期时间
取消成功返1 ,失败或未设置过期时间返0
此外,set 或getset命令赋值会同时清除过期时间。
watch检测一设置有过期时间的key,key到期自动删除不会被watch认为该键值被改变。
expireat和pexpireat
不常用。使用unux时间作为过期时间。expireat秒;pexpireat毫秒。
适用举例
如访问频率限制、缓存等。缓存又涉及到缓存淘汰规则等,具体请参考其它资料。