Redis(二) 扩展

系统 1654 0

事务
multi ... exec  之间的操作先进入等待队列,到exec时一起执行
                事物的所有操作结果都是一起返回的,所以前一条指令的结果无法作为后一条指令的参数
                其中的指令有语法错误时,都不执行;有“类型不匹配”等逻辑错误时,只执行对的指令;没有回滚
                
watch 监控一个或多个key 一旦监控的键值有修改,其后的事务就不执行
        监控范围:从开始监控到事务执行之前(实际上是从watch到exec,
                但是由于multi...exec之间的指令是在exec这个点一起执行的,所以看上去是从watch到multi)

                
                
生存时间
expire key seconds 设置key的生存时间为seconds秒(该键在seconds秒后自动删除)
ttl key 查看键key的剩余生存时间
persist key 该键持久化
##在生存时间相关的指令前加p(pexpire pttl),时间单位变为毫秒
expireat key unixtime 设置该键在unixtime时自动删除

可以设置在内存到达规定时,键的自动删除策略
    {如:对所有键执行LRU;对设置了生存时间的键执行LRU;在内存满了时报错;对所有键随机删除;对设置了生存时间的键随机删除}



排序
sort s/l/z 返回从小到大的序列(有序集合是对元素自身的值进行排列)(若元素是纯字符串,报错)
sort s/l/z ALPHA 按字典序输出纯字符串
加 DESC 参数  倒序输出
加 limit 1 2 参数 带偏移量 输出数量
加 by (by 后可接 String、hashmap)
    形如:sort s/l/z by item:*->time   *是将sort序列循环一遍代替* ->是按hashmap中time排序
            sort s/l/z by item:*   字符串
    注:当要排序值相等时 按元素自身值排序 不存在该排序值默认为0

by后面可加get(可加多个)#代表循环值
    形如:sort tag:ruby:posts by post:*->time DESC
            get post:*->time get #
    
get后可加store   将结果保存在列表中,并返回列表长度
    形如:sort tag:ruby:posts by post:*->time DESC
            get post:*->time get # store sort:result
sort很容易成为性能瓶颈 O(n+mlogm)n为要排序的数据总量 m为要返回的个数



消息通知
brpop lkeyA [lkeyB ...] time (time为等待时长,0为无限等待 )
    当多个等待队列都没有值时,等待,若等了time还没值,就返回nil
    当都有值时,前面的队列 优先取
    返回值是个数组  [0]为返回队列的名称 [1]返回的内容

订阅、发布模式
发布消息:public channel message 返回值为收到消息者的数量
订阅频道:subscribe channel (可以订阅多个频道,进入订阅模式后,只能使用订阅相关指令)
订阅模式三种返回值:
        “subscribe” “频道名称” “你共订阅了几个频道”
        “message”  “频道名称”   “消息内容”
        “unsubscribe”  “频道名称”  “你剩余几个频道”
unsubscribe [channel ...] 若未指定 频道名 会取消订阅所有频道

还可以订阅一类频道 如:psubscribe item:*

Redis(二) 扩展


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论