Redis 从入门到精通之Redis操作设置Key超时时间

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Redis中可以使用`EXPIRE`命令为key设置超时时间,也可以使用`PEXPIRE`命令为key设置毫秒级别的超时时间。当key的超时时间到期后,key会被自动删除。

1.设置Key超时时间

Redis中可以使用EXPIRE命令为key设置超时时间,也可以使用PEXPIRE命令为key设置毫秒级别的超时时间。当key的超时时间到期后,key会被自动删除。

1. EXPIRE命令

EXPIRE命令用于为指定的key设置超时时间,单位为秒。以下是EXPIRE命令的操作示例:

  • jedis操作示例:

import redis.clients.jedis.Jedis;

public class JedisExample {
   
    public static void main(String[] args) {
   
        // 连接Redis服务器
        Jedis jedis = new Jedis("localhost", 6379);

        // 为key设置超时时间
        Long result = jedis.expire("foo", 60); // 60秒后过期
        System.out.println(result);

        // 关闭连接
        jedis.close();
    }
}
  • RedisTemplate操作示例:

import org.springframework.data.redis.core.RedisTemplate;

public class RedisTemplateExample {
   
    private RedisTemplate<String, String> redisTemplate;

    public RedisTemplateExample(RedisTemplate<String, String> redisTemplate) {
   
        this.redisTemplate = redisTemplate;
    }

    public void expire(String key, long timeout) {
   
        redisTemplate.expire(key, timeout, TimeUnit.SECONDS);
    }
}

2. PEXPIRE命令

PEXPIRE命令用于为指定的key设置毫秒级别的超时时间。以下是PEXPIRE命令的操作示例:

- jedis操作示例:

import redis.clients.jedis.Jedis;

public class JedisExample {
   
    public static void main(String[] args) {
   
        // 连接Redis服务器
        Jedis jedis = new Jedis("localhost", 6379);

        // 为key设置超时时间
        Long result = jedis.pexpire("foo", 60000); // 60秒后过期
        System.out.println(result);

        // 关闭连接
        jedis.close();
    }
}

RedisTemplate操作示例:

import org.springframework.data.redis.core.RedisTemplate;

public class RedisTemplateExample {
   
    private RedisTemplate<String, String> redisTemplate;

    public RedisTemplateExample(RedisTemplate<String, String> redisTemplate) {
   
        this.redisTemplate = redisTemplate;
    }

    public void pexpire(String key, long timeout) {
   
        redisTemplate.expire(key, timeout, TimeUnit.MILLISECONDS);
    }
}

3. 注意事项

在使用EXPIREPEXPIRE命令设置key的超时时间时需要注意以下几点:

  • 超时时间是相对于当前时间的时间差,因此要注意时区的问题。
  • 超时时间的设置是针对key的,每个key都需要单独设置超时时间。
  • 超时时间设置的最小单位是秒或毫秒,因此要根据实际需求选择合适的单位。
  • 如果对一个已经设置了超时时间的key再次设置超时时间,那么新的超时时间会覆盖旧的超时时间。
  • 如果想要取消key的超时时间,可以使用PERSIST命令或EXPIRE命令将超时时间设置为0。
  • EXPIREPEXPIRE命令的使用方法与其他Redis命令类似,可以通过jedis或RedisTemplate两种方式进行操作。
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
21天前
|
缓存 监控 NoSQL
【Redis性能瓶颈揭秘】「调优系列」深入分析热Key的排查策略和解决方案
【Redis性能瓶颈揭秘】「调优系列」深入分析热Key的排查策略和解决方案
69 0
|
1月前
|
存储 缓存 NoSQL
【Redis】Redis魔法:揭秘Key的自动消失术——过期删除机制解析
【Redis】Redis魔法:揭秘Key的自动消失术——过期删除机制解析
95 0
|
2月前
|
NoSQL Java Redis
面试01-Redis 如何从海量数据中查询出某一个 Key
面试01-Redis 如何从海量数据中查询出某一个 Key
95 0
|
11天前
|
NoSQL Shell Redis
批量迁移redis实例的key
批量迁移redis实例的key
|
23天前
|
存储 NoSQL Java
Redis 数据结构操作入门
Redis 数据结构操作入门
15 0
|
1月前
|
NoSQL Redis 数据安全/隐私保护
在Docker中设置Redis的密码
在Docker中设置Redis的密码
84 0
|
1月前
|
缓存 NoSQL 数据库
[Redis]——数据一致性,先操作数据库,还是先更新缓存?
[Redis]——数据一致性,先操作数据库,还是先更新缓存?
|
1月前
|
存储 NoSQL Redis
如何在Python中操作Redis数据库
如何在Python中操作Redis数据库
28 0
|
2月前
|
NoSQL 测试技术 Redis
六步操作教你轻松搭建Redis集群
Redis 是我们目前大规模使用的缓存中间件,由于它强大高效而又便捷的功能,得到了广泛的使用。单节点的Redis已经就达到了很高的性能,为了提高可用性我们可以使用Redis集群。本文参考了Rdis的官方文档和使用Redis官方提供的Redis Cluster工具搭建Rdis集群。
40 0
|
2月前
|
NoSQL Java Redis
Spring boot 实现监听 Redis key 失效事件
【2月更文挑战第2天】 Spring boot 实现监听 Redis key 失效事件
67 0