Redis的常用命令整理
本篇内容介绍了“Redis的常用命令整理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
Redis常用命令整理
事务
事务的原理是先将属于一个事务的命令发送给redis ,然后再让 redis 依次执行这些命令
错误处理
(1)语法错误。语法错误指命令不存在或者命令参数个数不对。这种情况下,事务中只要有一个命令有语法错误,执行exec命令后redis就会直接返回错误,连语法正确的命令也不会执行
(2)运行错误。运行错误指在命令执行时出现的错误,比如使用散列类型的命令操作集合类型的键,这种错误在实际执行之前redis是无法发现的,所以在事务里这样的命令是会被redis接受并执行的,如果事务里的一条命令出现运行错误,事务里其他的命令依然会继续执行(包含出错命令之后的命令)
reids的事务没有关系数据库事务提供的回滚功能,为此开发者必须在事务执行出错之后自己收拾剩下的摊子
MULTI
标记一个事务块的开始。
事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行。
EXEC
执行所有事务块内的命令。
假如某个(或某些) key 正处于 WATCH 命令的监视之下,且事务块中有和这个(或这些) key 相关的命令,那么 EXEC 命令只在这个(或这些) key 没有被其他命令所改动的情况下执行并生效,否则该事务被打断(abort)。
watch 命令
watch key [ key ... ]
监视一个或多个 key ,如果在事务执行之前这个或这些 key 被其他命令所改动,那么事务将被打断,监控一直持续到exec命令
unwatch
取消 watch 命令对所有 key 的监视
生存时间
expire
expire 命令的使用方法为 expire key seconds ,其中 seconds 参数表示键的生存时间,单位是秒,该参数必须是整数
命令返回 1表示设置成功,返回 0 则表示键不存在或设置失败
如果想知道一个键还有多久会被删除,可以使用 ttl 命令。返回值是键的剩余时间(单位是秒),
如果想取消键的生存时间设置(即将键恢复成为永久的),可以使用 persist 命令。如果生存时间被成功清除则返回 1 。否则返回 0
除了 persist 命令之外,使用 set 、getset 命令为键赋值也同时会清楚键的生存时间
注: incr 、lpush、hset、zrem 命令均不会影像键的生存时间
精确控制键的生存时间应该使用 pexpire 命令。该命令的单位是毫秒
可以使用 pttl 命令以毫秒为单位返回键的剩余时间
另外不太常用命令:expireat 和 pexpireat,该命令第二个参数表示键的生存时间的截至时间,expireat 单位秒 pexpireat 单位毫秒
sort
该命令可以对列表类型,集合类型,和有序集合类型键进行排序
列表类型:
有序集合类型排序时,会忽略元素的分数,只针对元素的自身的值进行排序
除了可以排列数字外,sort 命令还可以通过 alpha 参数实现按照字典顺序排列非数字元素
sort 命令的 desc 参数可以实现将元素按照从大到小的顺序排列
sort 命令还支持 limit 参数来返回指定范围的结果,用法和sql 语句一样 limit offset count ,表示跳过前 offset 个元素并获取之后的 count 个元素
sort 命令 by 参数,默认情况下, sort uid 直接按照 uid 中的值排序,通过 by 参数,可以让 uid 按照其他键的元素来排序
user_level_* 是一个占位符,他先取出 uid 中的值,然后在用这个值来查找相应的键,比如在对 uid 列表进行排序时, 程序就会先取出 uid 的值 1 、 2 、 3 、 4 , 然后使用 user_level_1 、 user_level_2 、 user_level_3
和 user_level_4 的值作为排序 uid 的权重。
使用 get 选项,可以根据排序的结果来取出相应的键值
一个sort 命令中可以有多个 get 参数(而 by 参数只能有一个)
默认情况下 sort 命令会直接返回排序结果,如果希望保存排序结果,可以使用 store 参数,保存后键的类型为列表类型
“Redis的常用命令整理”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!