本篇博客是Redis系列的第6篇,主要讲解以下内容: 数据库数量 切换目标数据库 设置键的过期时间 移除键的过期时间 本系列的前5篇可以点击以下链接查看: Redis系列(一):Redis简介及环境安装 Redis系列(二):
本篇博客是Redis系列的第6篇,主要讲解以下内容:
本系列的前5篇可以点击以下链接查看:
Redis系列(一):Redis简介及环境安装
Redis系列(二):Redis的5种数据结构及其常用命令
Redis系列(三):Redis的持久化机制(RDB、AOF)
Redis系列(四):Redis的复制机制(主从复制)
Redis系列(五):Redis的过期键删除策略
默认情况下,Redis服务器有16个数据库,分别为db0~db15,如下图所示:
该数量是由配置文件中的databases
选项决定的,默认值为16:
默认情况下,我们执行的命令的目标数据库是db0,比如我们执行如下命令:
set message "Hello,Redis"
这个键值对会保存在数据库db0里,如下图所示:
如果想要切换目标数据库,可以使用SELECT
命令,比如切换到db1,可以执行如下命令:
SELECT 1
然后执行如下图所示的命令:
此时该键值对会保存在db1里,如下图所示:
在实际使用时,建议遵循以下规范:
Redis提供了7个和key的过期时间相关的命令,分别如下所示:
接下来详细讲解每个命令的使用方法。
TTL
是Time To Live的缩写,用来查看某个key的剩余生存时间,单位为秒。
如果key没有设置过期时间,返回-1。
如果key不存在,返回-2。
PTTL
和TTL
类似,也是用来查看某个key的剩余生存时间,但单位为毫秒。
如果key没有设置过期时间,返回-1。
如果key不存在,返回-2。
EXPIRE
命令用来给指定的key设置过期时间,单位为秒。
如果过期时间设置成功,返回1。
如果key不存在,返回0。
PEXPIRE
与EXPIRE
类似,也是用来给指定的key设置过期时间,但单位为毫秒。
如果过期时间设置成功,返回1。
如果key不存在,返回0。
EXPIREAT
命令用来给指定的key设置过期时间,但指定的是某个时间点秒数的UNIX时间戳。
如果过期时间设置成功,返回1。
如果key不存在,返回0。
可以使用如下Java代码获取秒数的时间戳:
System.out.println(LocalDateTime.now().plusMinutes(2).toEpochSecond(ZoneOffset.ofHours(8)));
PEXPIREAT
与EXPIREAT
类似,用来给指定的key设置过期时间,但指定的是点毫秒数的UNIX时间戳。
如果过期时间设置成功,返回1。
如果key不存在,返回0。
可以使用如下Java代码获取毫秒数的时间戳:
System.out.println(System.currentTimeMillis());
System.out.println(LocalDateTime.now().plusMinutes(2).toInstant(ZoneOffset.ofHours(8)).toEpochMilli());
PERSIST
命令用来移除指定key的过期时间。
如果过期时间移除成功,返回1。
如果key不存在或者key没有设置过期时间,返回0。
黄健宏 《Redis设计与实现》
--结束END--
本文标题: Redis系列(六):设置/移除键的过期时间
本文链接: https://www.lsjlt.com/news/5943.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0