Redis之进阶操作

事务

保证一个事物中的所有命令要么都执行,要么都不执行。
在这里插入图片描述
watch命令介绍
watch命令可以监控一个或多个键,一旦其中有一个键被修改或者删除,之后的事务不会执行,一直持续到exec 命令。exec 会取消对所有键的监控,unwatch可以对指定key取消监控

redis> set key 1
ok
redis> watch key
ok
redis> set key 2
ok
redis> multi
ok
redis> set key 3
queued
redis> exec
(nil)
redis> get key
"2"

在执行wathc命令后,事务执行前修改了key的值,之后的事务不会执行。

过期操作

  • expire key seconds 设置过期时间, 单位1秒,返回1 设置成功
  • pexpire key seconds 单位 1毫秒
  • ttl key 查询过期时间 -2:已删除,-1 永久存在
  • pttl key 查询过期时间 毫秒
  • persist key 清除键的过期时间设置(设置键永久),set 、getset 命令为键赋值也会清除过期
访问频率限制之一

在这里插入图片描述
在这里插入图片描述

访问频率限制之二

在这里插入图片描述

缓存

在这里插入图片描述
限制redis最大可用内存大小 maxmemory参数,当超出依据maxmemory-policy参数指定的策略来删除不需要的键知道内存小于指定内存。
LRU(least Rencently Used): 最近最少使用
在这里插入图片描述

排序

sort key [alpha] [desc] [limit offset, count],desc表示从大到小,默认从小到大
sort命令可以对列表、集合、有序集合进行排序。
有序集合排序只针对元素自身的值进行排序。
除了排列数字,也可以使用alpah参数实现按照字典顺序排列非数字元素。
在这里插入图片描述
在这里插入图片描述
by:
在这里插入图片描述
get:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
store:
在这里插入图片描述
在这里插入图片描述
性能优化:
在这里插入图片描述

消息通知

rpop
brpop/blpop:
每秒都会调用一次,想要实现当新任务加入时候再进行弹出,使用brpop,brpop 与rpop相似,区别在于当列表中没有元素时,brpop会阻塞连接,知道有新元素加入。
该命令可以同时检测多个键,如果多个键都有元素,则按照从左到右顺序取第一个键中的一个元素。
确认邮件和发送通知可以如下形式:

loop
$task = brpop queue:confirmation.email,queue:notification.email,0
execute($task[1])

无论通知邮件队列有多少个,都会优先执行确认邮件。

“发布/订阅 模式”:

  • publish channel message 发布者发布消息
  • subscribe channel [channel …] 订阅频道
  • unsubscribe [channel] [channnel …] 取消频道,如果不指定频道 就会取消订阅所有频道
  • psubscribe channel.?* 订阅指定的规则名称频道, 规则支持glob风格通配符格式,该命令会重复订阅一个相同频道在这里插入图片描述在这里插入图片描述
    管道:
    在这里插入图片描述
    在这里插入图片描述
    内部编码:
    在这里插入图片描述
    type表示键值的数据类型,
    在这里插入图片描述
    encoding字段表示redis键值的内部编码方式,可以用如下方式查询:
    在这里插入图片描述
    在这里插入图片描述
    上述内部编码方式详细介绍:《redis入门指南 第二版》4.6.2 介绍很详细,通俗易懂,可以重复翻阅
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值