当前位置: 移动技术网 > IT编程>数据库>MongoDB > Redis系列(六):设置/移除键的过期时间

Redis系列(六):设置/移除键的过期时间

2020年05月07日  | 移动技术网IT编程  | 我要评论

本篇博客是redis系列的第6篇,主要讲解以下内容:

  1. 数据库数量
  2. 切换目标数据库
  3. 设置键的过期时间
  4. 移除键的过期时间

本系列的前5篇可以点击以下链接查看:

redis系列(一):redis简介及环境安装

redis系列(二):redis的5种数据结构及其常用命令

redis系列(三):redis的持久化机制(rdb、aof)

redis系列(四):redis的复制机制(主从复制)

redis系列(五):redis的过期键删除策略

1. 数据库数量

默认情况下,redis服务器有16个数据库,分别为db0~db15,如下图所示:

该数量是由配置文件中的databases选项决定的,默认值为16:

2. 切换目标数据库

默认情况下,我们执行的命令的目标数据库是db0,比如我们执行如下命令:

set message "hello,redis"

这个键值对会保存在数据库db0里,如下图所示:

如果想要切换目标数据库,可以使用select命令,比如切换到db1,可以执行如下命令:

select 1

然后执行如下图所示的命令:

此时该键值对会保存在db1里,如下图所示:

在实际使用时,建议遵循以下规范:

  1. 各个应用使用不同的目标数据库
  2. 1个应用尽量不要操作多个目标数据库

3. 设置/移除键的过期时间

redis提供了7个和key的过期时间相关的命令,分别如下所示:

  1. ttl
  2. pttl
  3. expire
  4. pexpire
  5. expireat
  6. pexpireat
  7. persist

接下来详细讲解每个命令的使用方法。

3.1 ttl

ttl是time to live的缩写,用来查看某个key的剩余生存时间,单位为秒。

如果key没有设置过期时间,返回-1。

如果key不存在,返回-2。

3.2 pttl

pttlttl类似,也是用来查看某个key的剩余生存时间,但单位为毫秒。

如果key没有设置过期时间,返回-1。

如果key不存在,返回-2。

3.3 expire

expire命令用来给指定的key设置过期时间,单位为秒。

如果过期时间设置成功,返回1。

如果key不存在,返回0。

3.4 pexpire

pexpireexpire类似,也是用来给指定的key设置过期时间,但单位为毫秒。

如果过期时间设置成功,返回1。

如果key不存在,返回0。

3.5 expireat

expireat命令用来给指定的key设置过期时间,但指定的是某个时间点秒数的unix时间戳。

如果过期时间设置成功,返回1。

如果key不存在,返回0。

可以使用如下java代码获取秒数的时间戳:

system.out.println(localdatetime.now().plusminutes(2).toepochsecond(zoneoffset.ofhours(8)));

3.6 pexpireat

pexpireatexpireat类似,用来给指定的key设置过期时间,但指定的是点毫秒数的unix时间戳。

如果过期时间设置成功,返回1。

如果key不存在,返回0。

可以使用如下java代码获取毫秒数的时间戳:

system.out.println(system.currenttimemillis());

system.out.println(localdatetime.now().plusminutes(2).toinstant(zoneoffset.ofhours(8)).toepochmilli());

3.7 persist

persist命令用来移除指定key的过期时间。

如果过期时间移除成功,返回1。

如果key不存在或者key没有设置过期时间,返回0。

4. 源码及参考

黄健宏 《redis设计与实现》

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网