前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C# CsRedis的初探(七)-- Redis常用命令整理(其它篇)

C# CsRedis的初探(七)-- Redis常用命令整理(其它篇)

作者头像
Vaccae
发布2019-07-24 13:19:00
8790
发布2019-07-24 13:19:00
举报
文章被收录于专栏:微卡智享微卡智享

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 参数,保存后键的类型为列表类型


-END-

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档