Redis 学习笔记5 - 数据结构之外的讨论
2020-03-31 本文已影响0人
张云飞Vir
1. 数据结构之外的讨论
1.1 过期时间
30 秒后过期,删除 key
expire pages:about 30
在特定时间删除key
expireat pages:about 1356933600
它 会在2012年12月31日上午 12:00 删除 key
ttl 命令
ttl 命令 可以找出一条数据还能活多久
ttl pages:about
persist 中止过期,使得过期ttl失效,变为持久保存
persist pages:about
setex
setex 允许你在一个单独的原子命令中设置一个字符串并指定它的存活时间
setex pages:about 30 '<h1>about us</h1>....'
1.2 发布订阅(Publication and Subscriptions)
订阅
subscribe warnings
发布
publish warnings "it's over 9000!"
你可以订阅多个频道
subscribe channel1 channel2 ...
用 unsubscribe 来停止监听一个订阅
一组频道
订阅某种模式的一组频道
psubscribe warnings:*
punsubscribe 停止某种模式的一组频道。
最后,注意 publish 命令的返回值 1。这是收到消息的客户端的个数
1.3 Monitor 和 slowlog
monitor 命令让你监控 Redis 的状态。它是一个很棒的调试工具,能让你深入了解你的应用是怎样和 Redis 交互的。
不要在生产环境中使用监控命令,它就是一个调试和开发的工具而已
slowlog ,也是一个很棒的性能分析工具
// 所有的命令做日志记录:
config set slowlog-log-slower-than 0
检索所有日志,或者最新日志,通过:
slowlog get
slowlog get 10
1.4 排序(Sort)
它允许你对列表,集合,有序集合中的值进行排序 (有序集是依照权重排序的,而不是集合中的成员)。最简单的情况,它允许我们这样:
rpush users:leto:guesses 5 9 10 2 4 10 19 2
sort users:leto:guesses
将会返回从低到高顺序排列的值。
sadd friends:ghanima leto paul chani jessica alia duncan
sort friends:ghanima limit 0 3 desc alpha
上面的命令演示了怎么对已排序记录分页 (通过 limit),如何以降序返回结果 (通过 desc) ,以及如何按照字典序排序而不是按照数值 (通过 alpha).
1.5 扫描(Scan)
scan 用 cursor 表达游标,实现分页。
第一次调用 scan ,指定 0 作为游标。下面我们看看一个初始调用 scan 的例子,它指定了匹配模式 (可选) 和计数 (可选):
scan 0 match bugs:* count 20
END