云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
1. 数据库数量
默认情况下,Redis服务器有16个数据库,分别为db0~db15,如下图所示:
该数量是由配置文件中的databases选项决定的,默认值为16:
2. 切换目标数据库
默认情况下,我们执行的命令的目标数据库是db0,比如我们执行如下命令:
这个键值对会保存在数据库db0里,如下图所示:
如果想要切换目标数据库,可以使用SELECT命令,比如切换到db1,可以执行如下命令:
然后执行如下图所示的命令:
此时该键值对会保存在db1里,如下图所示:
在实际使用时,建议遵循以下规范:
- 各个应用使用不同的目标数据库
- 1个应用尽量不要操作多个目标数据库
3. 设置/移除键的过期时间
Redis提供了7个和key的过期时间相关的命令,分别如下所示:
- TTL
- PTTL
- EXPIRE
- PEXPIRE
- EXPIREAT
- PEXPIREAT
- PERSIST
接下来详细讲解每个命令的使用方法。
3.1 TTL
TTL是Time To Live的缩写,用来查看某个key的剩余生存时间,单位为秒。
如果key没有设置过期时间,返回-1。
如果key不存在,返回-2。
3.2 PTTL
PTTL和TTL类似,也是用来查看某个key的剩余生存时间,但单位为毫秒。
如果key没有设置过期时间,返回-1。
如果key不存在,返回-2。
3.3 EXPIRE
EXPIRE命令用来给指定的key设置过期时间,单位为秒。
如果过期时间设置成功,返回1。
如果key不存在,返回0。
3.4 PEXPIRE
PEXPIRE与EXPIRE类似,也是用来给指定的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
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());
3.7 PERSIST
PERSIST命令用来移除指定key的过期时间。
如果过期时间移除成功,返回1。
如果key不存在或者key没有设置过期时间,返回0。
4. 源码及参考
黄健宏 《Redis设计与实现》
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
原文发布时间:2020-05-07
本文作者:申城异乡人
本文来自:“掘金”,了解相关信息可以关注“掘金”