当前位置: 代码网 > it编程>数据库>Redis > Redis设置过期时间的实现示例

Redis设置过期时间的实现示例

2025年06月18日 Redis 我要评论
在使用redis作为缓存存储值的时候,一般都是需要设置值的过期时间,否则日积月累的垃圾数据就会占用大量的内存空间;设置过期时间可以分开设置也可以一条语句设置分开设置先设置值再设置过期时间,这种方式极端

在使用redis作为缓存存储值的时候,一般都是需要设置值的过期时间,否则日积月累的垃圾数据就会占用大量的内存空间;

设置过期时间可以分开设置也可以一条语句设置

分开设置

先设置值再设置过期时间,这种方式极端情况下会出现问题,毕竟是非原子操作。

	// 两条命令分别设置值和过期时间
	// 时间单位:秒
	redis.expire("key",6);
	// 时间单位:毫秒
	//redis.pexpire("key",6000l);

合并设置

一条命令同时设置值和过期时间,推荐使用此方式。

	// 一条语句设置值和过期时间
    // 时间单位:秒
	redis.setex("key",6,"value");
    // 时间单位:毫秒
	//redis.psetex("key",6000l,"value");

一般主要包括2种处理过期方式,其中expire都是以秒为单位,pexpire都是以毫秒为单位的。

第一种

设置值的有效时间。

    expire (key seconds)        // 为给定 key 设置过期时间,以秒计。
    pexpire (key milliseconds)  // 设置 key 的过期时间以毫秒计。
    setex(string key, long seconds, string value) // 建议使用原子操作设置过期时间,而不是先设置值再设置过期时间

第二种

设置值的到期时间,根据时间的时间戳设置,例如:2021年6月1号上午10点10分10秒到期,就填此时刻的时间戳

// 设置 key 过期时间的时间戳(unix timestamp) 单位:秒时间戳,
// 例如:2021年6月1号上午10点10分10秒到期 timestamp=1622513410
expireat (key timestamp)

// 设置 key 过期时间的时间戳(unix timestamp) 单位:毫秒时间戳
// 例如:2021年6月1号上午10点10分10秒到期 timestamp=1622513410000
pexpireat (key milliseconds-timestamp)

注:更新值会清除过期时间,如果用del, set, getset会将key对应存储的值替换成新的,命令也会清除掉超时时间;如果list结构中添加一个数据或者改变hset数据的一个字段是不会清除超时时间的;如果想要通过set去覆盖值那就必须重新设置expire。

到此这篇关于redis设置过期时间的实现示例的文章就介绍到这了,更多相关redis 过期时间内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com