首页 > 数据库 >Redis 可以根据消息存储时长 将key 删除吗

Redis 可以根据消息存储时长 将key 删除吗

时间:2024-07-04 19:58:37浏览次数:20  
标签:存储 设置 示例 过期 Redis 时间 key myKey

是的,Redis 可以根据消息的存储时长(TTL, Time-To-Live)自动删除键。您可以通过设置键的过期时间来实现这一点。以下是一些相关的命令和使用示例:

设置过期时间的命令

  1. EXPIRE:为键设置过期时间(以秒为单位)。

    EXPIRE key seconds
    
  2. PEXPIRE:为键设置过期时间(以毫秒为单位)。

    PEXPIRE key milliseconds
    
  3. EXPIREAT:为键设置一个具体的过期时间点(以 UNIX 时间戳表示,秒为单位)。

    EXPIREAT key timestamp
    
  4. PEXPIREAT:为键设置一个具体的过期时间点(以 UNIX 时间戳表示,毫秒为单位)。

    PEXPIREAT key timestamp
    
  5. SET:直接在设置键值的同时设置过期时间。

    SET key value EX seconds
    

查询过期时间的命令

  1. TTL:查看键的剩余生存时间(以秒为单位)。

    TTL key
    
  2. PTTL:查看键的剩余生存时间(以毫秒为单位)。

    PTTL key
    

删除过期时间的命令

  1. PERSIST:移除键的过期时间,使其永久存在。
    PERSIST key
    

示例

以下是一些示例,展示如何使用这些命令来设置和管理键的过期时间:

示例 1:使用 EXPIRE 设置过期时间

SET myKey "myValue"
EXPIRE myKey 60  # 设置 myKey 在 60 秒后过期

示例 2:在设置键值时指定过期时间

SET myKey "myValue" EX 60  # 设置 myKey 在 60 秒后过期

示例 3:检查键的剩余生存时间

TTL myKey  # 查看 myKey 的剩余生存时间(秒)
PTTL myKey  # 查看 myKey 的剩余生存时间(毫秒)

示例 4:移除键的过期时间

PERSIST myKey  # 移除 myKey 的过期时间

示例 5:使用 EXPIREAT 设置具体的过期时间点

# 假设当前 UNIX 时间戳为 1622547800
EXPIREAT myKey 1622547900  # 设置 myKey 在 1622547900 时间点过期

过期键的自动删除

Redis 会自动删除过期的键,删除的方式包括以下两种:

  1. 惰性删除:当客户端访问一个键时,如果该键已经过期,Redis 会立即删除它并返回空值。
  2. 定期删除:Redis 会周期性地扫描一部分键,主动删除其中已经过期的键。

通过以上方法,您可以轻松地管理 Redis 中键的生存时间,使其在合适的时间点自动删除,从而有效地管理缓存和资源。

标签:存储,设置,示例,过期,Redis,时间,key,myKey
From: https://www.cnblogs.com/gongchengship/p/18284566

相关文章

  • Redis 的常用命令
    Redis是一个开源的内存数据结构存储,广泛应用于缓存、消息队列和实时数据分析等场景。下面是Redis的一些常用命令,按数据类型和功能分类列出。通用命令连接与认证:PING:测试服务器连接。PINGAUTH:认证服务器。AUTHpassword服务器信息:INFO:获取服务器的信息和统计......
  • 使用 Tampermonkey 在页面加载完5秒后监听特定页面元素的点击事件并修改 API 返回的数
    示例 //==UserScript==//@nameNewUserscript//@namespacehttp://tampermonkey.net///@version2024-07-04//@descriptiontrytotakeovertheworld!//@authorYou//@matchhttps://a.x.com/*//@iconhttps://www.......
  • 面试篇-Redis-1缓存三兄弟+数据一致性
    文章目录前言一、你们项目中使用Redis都做了什么:二、使用过程中遇到缓存穿透,缓存击穿,缓存雪崩你们如何处理:2.1缓存穿透:2.1.1通过缓存key值为null进行处理:2.1.2使用布隆过滤器:2.1.3说说布隆过滤器的原理2.2缓存击穿是什么:2.2.1缓存击穿的场景2.2.1你们项目中是怎......
  • [数据库][Redis]
    redis在项目中的主要作用缓存,速度比较快计数器,incrdecr消息队列,消息的订阅和发布机制排行榜,zset分布式锁redis用作消息队列RabbitMQ和Redis都可以用作消息队列,但它们在设计、功能和适用场景上有显著的不同。理解这些差异有助于在项目中做出恰当的选择。RabbitMQ类型:......
  • 没有使用Redis相关的代码或依赖,但在 `application.yaml` 配置文件中配置了Redis参数,项
    个人名片......
  • K8S学习教程(二):在 PetaExpress KubeSphere容器平台部署高可用 Redis 集群
    前言Redis是在开发过程中经常用到的缓存中间件,为了考虑在生产环境中稳定性和高可用,Redis通常采用集群模式的部署方式。在制定Redis集群的部署策略时,常规部署在虚拟机上的方式配置繁琐并且需要手动重启节点,相较之下,使用PetaExpress提供的Kubernetes(k8s)服务进行Redis集......
  • 关于redis锁的详解
    引用   https://www.jb51.net/article/251428.htmLocklock=newReentrantLock();@AutowiredStringRedisTemplateredisTemplate;publicstaticfinalStringg01="good:01";publicstaticfinalStringREDIS_LOCK="good_lock";......
  • 服务器存储金蝶数据库丢失恢复
    一、检查备份情况确认备份存在:首先,需要确认是否有金蝶数据库的备份存在。备份是数据恢复的基础,没有备份的情况下恢复数据将非常困难。检查备份的完整性和时效性:验证备份文件的完整性和时效性,确保备份文件没有损坏且包含丢失数据之前的数据库状态。二、使用备份恢复数据从备......
  • 前端存储数据
    前端常用的存储数据的方式有2种:本地存储:(localstorage、sessionstorage、cookie)Vuex容器:(state、geeter、mutations、action、modules)   vuex存储在内存;   localstorage(本地存储)则以文件的方式存储在本地,永久保存;   sessionstorage(会话存储),临时保......
  • 理解MySQL存储引擎:掌握数据存储与管理
    在工作或学习过程中,作为一名数据库管理员或开发者,我们常常需处理大量数据,同时确保数据的可靠性与高效性。MySQL作为最受欢迎的开源数据库之一,其强大的性能和灵活性广为人知。而在MySQL背后的存储引擎则起到了至关重要的作用。本文将详细介绍MySQL各种存储引擎的特性、用途及......