Redis设置key永不过期

一、Redis设置key永不过期的原因

在实际开发中,有些数据是非常重要的,需要永久存储,而且不能因为时间的缘故而被自动删除。Redis设置key永不过期的功能就可以帮我们实现这个需求。

二、Redis设置key永不过期无效

我们可以使用Redis命令:PERSIST key 来将一个带有过期时间的键值对变为永久存在的。但是,有时会遇到有些key即使设置了PERSIST,也无法让其永久存在的情况。

原因在于,只有当Redis Server的内存比较充足时,Redis才会启用过期键移除机制。当Redis内存告急时,它会根据策略选择删除哪些过期的键值对以释放内存。如果key被选中了,那么即使它有PERSIST标志,也会被删除。

三、Redis设置过期时间不生效

在Redis中,可以使用TTL命令来查看某个key的过期时间,使用EXPIRE命令来设置key的过期时间。但是,有些情况下,设置过期时间可能并不会生效。

一个常见的情况是当我们使用SET命令设置一个已经存在的key时,如果我们设置了该key的过期时间,但是该key之前并没有过期,那么过期时间设置将不会生效。此时,只有等到该key过期后再重新设置过期时间才会生效。

四、Redis设置key永不过期弊端

虽然设置key永不过期功能很方便,但是也会带来一些弊端。

  • 占用过多内存资源,因为这些key永不过期,所以Redis会一直占用内存。如果数据量过大,内存资源会变得紧张,甚至可能导致Redis Server崩溃。
  • 如果key对应的值随着时间的推移有更新,但永远不会被删除,意味着Redis中很多数据的存储已经没有了意义,因为它们已经过时了。这无疑会浪费大量的存储空间。

五、Redis设置key过期时间

1. EXPIRE命令

EXPIRE命令可以设置一个key的过期时间,单位是秒。例如:

  
    # 设置key为test的过期时间为3600秒(1小时)
    > EXPIRE test 3600
  

2. PEXPIRE命令

PEXPIRE命令和EXPIRE命令类似,但是单位是毫秒。例如:

  
    # 设置key为test的过期时间为3600000毫秒(1小时)
    > PEXPIRE test 3600000
  

3. EXPIREAT命令

EXPIREAT命令可以设置一个key的过期时间点,以UNIX时间戳的形式表示。例如:

  
    # 设置key为test的过期时间为2022年12月31日23时59分59秒
    > EXPIREAT test 1740643199
  

4. PEXPIREAT命令

PEXPIREAT命令和EXPIREAT命令类似,但是单位是毫秒。例如:

  
    # 设置key为test的过期时间为2022年12月31日23时59分59秒999毫秒
    > PEXPIREAT test 1740643199999
  

5. PERSIST命令

PERSIST命令可以使一个带有过期时间的key变成永久存在的。例如:

  
    # 将key为test的过期时间取消,以便让它永久存在
    > PERSIST test
  

六、Redis设置key永不过期作用

Redis设置key永不过期功能是非常方便的,对于一些重要数据的存储非常有用。它可以实现数据的永久保存,避免数据被误删除或误覆盖。

比如,我们可以将系统的一些配置信息、用户的登录状态等永久保存在Redis中,当我们需要使用这些数据时,可以直接从Redis中读取,而无需频繁的从数据库读取。

七、Redis设置key永不过期设置 -1

除了使用PERSIST命令使key永不过期外,我们还可以将key的过期时间设置为-1,表示该key永不过期。例如:

  
    # 设置key为test永不过期
    > EXPIRE test -1
  

八、Redis设置key永久有效

为了使key永久有效,我们可以使用PEXPIREAT命令,将过期时间点设置为未来极远的时间。例如:

  
    # 设置key为test永不过期
    > PEXPIREAT test 99999999999999
  

九、Redis设置过期时间的命令选取

在日常使用中,我们使用最多的命令是EXPIRE和PEXPIRE。如果需要将过期时间点设置为未来的某个时间,可以使用EXPIREAT和PEXPIREAT命令;如果需要将key变成永久存在的,可以使用PERSIST命令。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/200278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-05 14:04
下一篇 2024-12-05 14:04

相关推荐

  • Python如何遍历字典中的key和value

    本文将详细讲解Python中如何遍历字典中的key和value,包括多种遍历方式以及在遍历过程中的一些应用场景。 一、遍历字典中的key和value 在Python中,字典是一种无…

    编程 2025-04-29
  • Python字典输出key对应的value

    本文将从多个方面详细阐述Python字典输出key对应的value,包括获取单个和多个key的value值、如何判断一个key是否存在、如何遍历所有的key-value对和如何删除…

    编程 2025-04-28
  • 在CentOS上安装Redis

    Redis是一款非关系型数据库,它支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。Redis运行内存内并且支持数据持久化,它还可以应用于缓存、消息队列等场景。本文将介绍…

    编程 2025-04-28
  • 解析spring.redis.cluster.max-redirects参数

    本文将围绕spring.redis.cluster.max-redirects参数进行详细阐述,从多个方面解读它的意义与作用,并给出相应的代码示例。 一、基础概念 在介绍sprin…

    编程 2025-04-27
  • Redis Bitmap用法介绍

    Redis是一款高性能的内存数据库,支持多种数据类型,其中之一便是bitmap。Redis bitmap(位图)是一种用二进制位来表示元素是否在集合中的数据结构。由于使用了二进制位…

    编程 2025-04-27
  • etcd查看key value

    etcd是一个高可用的键值存储组件,它为分布式系统提供了一个可靠的方式来存储数据。本篇文章将介绍如何通过etcd查看key value,包括使用etcdctl命令行工具和Go语言的…

    编程 2025-04-27
  • 使用yum安装redis

    一、什么是redis? Redis是一种开源的基于key-value存储的NoSQL数据库,它支持多种数据结构的存储,例如字符串、哈希、列表、集合以及有序集合等。同时,Redis还…

    编程 2025-04-25
  • Vue 往数组添加字母key

    本文将详细阐述如何在 Vue 中往数组中添加字母 key,并从多个方面探讨实现方法。 一、Vue 中添加字母 key 的实现方法 在 Vue 中,添加 key 可以使用 v-bin…

    编程 2025-04-25
  • Linux Redis 重启

    一、概述 Redis 是一款高性能的 NoSQL 数据库,常用于各种应用场景的数据缓存、消息队列、实时数据分析等等。在使用 Redis 过程中,如果出现了某些问题,有时候只需要重启…

    编程 2025-04-25
  • Ubuntu安装Redis指南

    一、安装步骤 1、查看Ubuntu是否已安装Redis,如果已安装,则卸载Redis。 sudo apt-get remove redis-server 2、安装Redis——命令…

    编程 2025-04-25

发表回复

登录后才能评论