在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Redis怎么设置生存和过期时间

118次阅读
没有评论

共计 2041 个字符,预计需要花费 6 分钟才能阅读完成。

这篇“Redis 怎么设置生存和过期时间”文章的知识点大部分人都不太理解,所以丸趣 TV 小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Redis 怎么设置生存和过期时间”文章吧。

在了解原理前 先来看使用方法

通过 EXPIRE 命令或者 PEXPIRE 命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间,在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为 0 的键。

SETEX 命令可以在设置一个字符串键的同时为键设置过期时间(只能用于字符串键)

与 EXPIRE 命令和 PEXPIRE 命令类似,客户端可以通过 EXPIREAT 命令或 PEXPIREAT 命令,以秒或者毫秒精度给数据库中的某个键设置过期时间

过期时间是一个 UNIX 时间戳,当键的过期时间来临时,服务器就会自动从数据库中删除这个键

TTL 命令和 PTTL 命令接受一个带有生存时间或者过期时间的键,返回这个键的剩余生存时间,也就是,返回距离这个键被服务器自动删除还有多长时间

Redis 有四个不同的命令可以用于设置键的生存时间(键可以存在多久)或过期时间(键什么时候会被删除):

EXPIRE命令用于将键 key 的生存时间设置为 ttl 秒。

PEXPIRE命令用于将键 key 的生存时间设置为 ttl 毫秒。

EXPIREAT命令用于将键 key 的过期时间设置为 timestamp 所指定的秒数时间戳。

PEXPIREAT命令用于将键 key 的过期时间设置为 timestamp 所指定的毫秒数时间戳。

原理

虽然有多种不同单位和不同形式的设置命令,但实际上 EXPIRE、PEXPIRE、EXPIREAT 三个命令都是使用 PEXPIREAT 命令来实现的:

无论客户端执行的是以上四个命令中的哪一个,经过转换之后,最终的执行效果都和执行 PEXPIREAT 命令一样。

redisDb 结构的 expires 字典保存了数据库中所有键的过期时间,我们称这个字典为过期字典

过期字典的键是一个指针,这个指针指向键空间中的某个键对象(也即是某个数据库键)。

过期字典的值是一个 long long 类型的整数,这个整数保存了键所指向的数据库键的过期时间——一个毫秒精度的 UNIX 时间戳。

下图展示了一个带有过期字典的数据库例子,在这个例子中,键空间保存了数据库中的所有键值对,而过期字典则保存了数据库键的过期时间。

为了展示方便,图中的键空间和过期字典中重复出现了两次 alphabet 键对象和 book 键对象。在实际中,键空间的键和过期字典的键都指向同一个键对象,所以不会出现任何重复对象,也不会浪费任何空间。

图中的过期字典保存了两个键值对:

第一个键值对的键为 alphabet 键对象,值为 1385877600000,这表示数据库键 alphabet 的过期时间为 1385877600000(2013 年 12 月 1 日零时)。

第二个键值对的键为 book 键对象,值为 1388556000000,这表示数据库键 book 的过期时间为 1388556000000(2014 年 1 月 1 日零时)。当客户端执行 PEXPIREAT 命令(或者其他三个会转换成 PEXPIREAT 命令的命令)为一个数据库键设置过期时间时,服务器会在数据库的过期字典中关联给定的数据库键和过期时间。

在服务器执行以下命令之后

过期字典将新增一个键值对,其中键为 message 键对象,而值则为 1391234400000(2014 年 2 月 1 日零时),如图

以下是 PEXPIREAT 命令的伪代码定义

PERSIST 命令可以移除一个键的过期时间

PERSIST 命令就是 PEXPIREAT 命令的反操作:PERSIST 命令在过期字典中查找给定的键,并解除键和值(过期时间)在过期字典中的关联。

过期键的判定

通过过期字典,程序可以用以下步骤检查一个给定键是否过期:

1)检查给定键是否存在于过期字典:如果存在,那么取得键的过期时间。

2)检查当前 UNIX 时间戳是否大于键的过期时间:如果是的话,那么键已经过期;否则的话,键未过期。可以用伪代码来描述这一过程:

Redis 怎么设置生存和过期时间

对于一个过期时间为 1385877600000(2013 年 12 月 1 日零时)的键 alphabet 来说:

如果当前时间为 1383282000000(2013 年 11 月 1 日零时),那么调用 is_expired(alphabet)将返回 False,因为当前时间小于 alphabet 键的过期时间。

另一方面,如果当前时间为 1385964000000(2013 年 12 月 2 日零时),那么调用 is_expired(alphabet)将返回 True,因为当前时间大于 alphabet 键的过期时间。

以上就是关于“Redis 怎么设置生存和过期时间”这篇文章的内容,相信大家都有了一定的了解,希望丸趣 TV 小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计2041字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 四虎成人免费观看在线网址 | 成年男女男精品免费视频网站 | 国产精品视频一区麻豆 | 又色又爽又高潮免费视频国产 | 亚洲精品久久婷婷丁香51 | 麻豆 美女 丝袜 人妻 中文 | 国产精品久久亚洲不卡4k岛国 | 狠狠躁天天躁夜夜躁婷婷 | 久99久精品视频免费观看v | 亚洲一区无码中文字幕 | 在线久操| 国产男女猛烈无遮挡免费视频 | 国产区精品福利在线社区 | 激情综合亚洲欧美日韩 | 男人靠女人的免费视频 | 狠狠操天天 | 爱福利极品盛宴 | 午夜在线观看福利 | 小12箩利洗澡无码视频网站 | 中文字幕1区 | 一二三四日本高清社区5 | 无遮挡边摸边吃奶边做视频免费 | 中文字幕 日韩在线 | 成人免费无码av | 亚洲综合伦理一区 | 禁断看护妇中文字幕在线视频 | 色播视频在线播放 | 国产丝袜在线视频 | 男女一区二区三区免费 | 人妻人人做人做人人爱 | 国产成a人亚洲精品无码久久网 | 亚洲精品天堂无码中文字幕 | 欧美在线播放一区二区 | 国产成人一区二区三区在线播放 | 限制电影福利在线观看 | 真人与拘做受免费视频一 | 国产精品无码一区二区三区电影 | 日本亚洲中文字幕不卡 | 性刺激久久久久久久久 | 亚洲第一在线综合网站 | 成人a级视频在线观看 |