- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 - 超越数据结构
第四章 - 超越数据结构
5种数据结构组成了Redis的基础,其他没有关联特定数据结构的命令也有很多。我们
已经看 ⼀些这样的命
令:info,select, flushdb, multi, exec, discard, watch和keys。这⼀章将看
看其他的⼀些重要命令。
使⽤期限 (Expiration )
Redis允许你标记⼀个关键字的使⽤期限。你可以给予⼀个Unix时间戳形式 (⾃1970年
1⽉1 ⽇起)的绝对时间,或者⼀个基于秒的存活时间。这是⼀个基于关键字的命令,
因此其不在乎关键字表⽰的是哪种类型的数据结构。
expire pages:about 30
expireat pages:about 1356933600
第⼀个命令将会在30秒后删除掉关键字 (包括其关联的值)。第⼆个命令则会在20 12
年12⽉31 ⽇上午12点删除掉关键字。
这让Redis能成为⼀个理想的缓冲引擎。通 ttl命令,你可以知道⼀个关键字还能够
存活多久。⽽通 persist命令,你可以把⼀个关键字的使⽤期限删除掉。
ttl pages:about
persist pages:about
最后,有个特殊的字符串命令,setex命令让你可以在⼀个单独的原⼦命令⾥设置⼀
个字符串值,同时⾥指定⼀个⽣存期 (这⽐任何事情都要⽅便)。
setex pages:about 30 h1about us /h1
发布和订阅 (Publication and Subscriptions)
Redis的列表数据结构有blpop和brpop命令,能从列表⾥返回且删除第⼀个 (或最后
⼀个)元素,或者被堵塞,直到有⼀个元素可供操作。这可以⽤来实现⼀个简单的队
列。
(译注:对于blpop和brpop命令,如果列表⾥没有关键字可供操作,连接将被堵
塞,直到有另外的Redis客户端使⽤lpush或rpush命令推⼊关键字为⽌。)
此外,Redis对于消息发布和频道订阅有着⼀流的⽀持。你可以打开第⼆个redis-
cli窗⼜,去尝试⼀下这些功能。在第⼀个窗⼜⾥订阅⼀个频道 (我们会称它
为warnings):
subscribe warnings
其将会答复你订阅的信息。现在,在另⼀个窗⼜,发布⼀条消息到warnings频道:
publish warnings its over 9000 !
如果你回到第⼀个窗⼜,你应该已经接收到warnings频道发来的消息。
你可以订阅多个频道 (subscribe channel1 channel2 ...),订阅⼀组基于
模式的频道 (psubscribe warnings:*),以及使⽤unsubscribe和
punsubscribe命令停⽌监听⼀个或多个频道,或⼀个频道模式。
最后,可以注意到publish命令的返回值是1,这指出了接收到消息的客户端数量。
监控和延迟⽇志 (Monitor and Slow Log )
monitor命令可以让你查看Redis正在做什么。这是⼀个优秀的调试⼯具,能让你了
解你的程序如何与Redis进⾏交互。在两个redis-cli窗⼜中选⼀个 (如果其中⼀个
还处于订阅状态,你可以使⽤unsubscribe命令退订,或者直接关掉窗⼜再重新打
开⼀个新窗⼜)键⼊monitor命令。在另⼀个窗⼜,执⾏任何其他类型的命令 (例如
get或set命令)。在第⼀个窗⼜⾥,你应该可以看到这些命令,包括他们的参数。
在实际⽣产环境⾥,你应该谨慎运⾏monitor命令,这真的仅仅就是⼀个很有⽤的调
试和开发⼯具。除此之外,没有更多要说的了。
随同monitor命令⼀起,Redis拥有⼀个slowlog命令,这是⼀个优秀的性能剖析⼯
具。其会记录执⾏时间超 ⼀定数量微秒的命令。在下⼀章节,我们会简略地涉及如
何配置Redis ,现在你可以按下⾯的输⼊配置Redis去记录所有的命令:
config set slowlog-log-slower-than 0
然后,执⾏⼀些命令。最后,你可以检索到所有⽇志,或者检索最近的那些⽇志:
slowlog get
slowlog get 10
通 键⼊slowlog len,你可以获取延迟⽇志⾥的⽇志数量。
对于每个被你键⼊的命令,你应该查看4个参数:
⼀个⾃动递增的id
⼀个Unix时间戳,表⽰命令开始运⾏的时间
⼀个微妙级的时间,显⽰命令运⾏的总时间
该命令以及所带参数
延迟⽇志保存在存储器中,因此在⽣产环境中运⾏ (即使有⼀
文档评论(0)