当前位置: 首页 > news >正文

Redis 的过期键 | Navicat 技术干货

Redis 是一种高性能的内存数据存储,以其速度和多功能性而闻名。其中一个有用的特性是为键设置过期时间的功能。在 Redis 中,为键设置过期时间对于管理数据和确保过时或临时数据自动从数据库中删除是至关重要的。在本文中,我们将探讨在 redis-cli 和 Navicat for Redis 如何设置 Redis 的过期键,以及如何在各种场景中应用此功能。

设置键的过期时间

若要在 Redis 中为键设置过期时间,你可以使用命令 EXPIRE 或 SETEX 。命令 EXPIRE 允许你以秒为单位设置过期时间,而命令 SETEX 则是允许在一个命令中同时设置键的值和过期时间。下面是如何使用这两个命令的说明:

使用命令 EXPIRE:

127.0.0.1:6379> SET mykey "Hello, Redis"
OK
127.0.0.1:6379> EXPIRE mykey 60
(integer) 1

在这个例子中,我们首先使用命令 SET 将 mykey 的值设置为“Hello,Redis”。然后,我们使用命令 EXPIRE 将 mykey 的过期时间设置为 60 秒。60 秒后,该键将自动从数据库中删除。

使用命令 SETEX:

127.0.0.1:6379> SETEX mykey 60 "Hello, Redis"
OK

通过单个命令 SETEX ,我们可以指定键、过期时间(这种情况下为60秒)和值,即在单个命令中实现相同的结果。

查看生存时间(TTL)

若要查看键过期前剩余的时间,你可以使用命令 TTL 。该命令返回剩余的秒数,如果键不存在,则返回 -2,如果键存在但没有关联的过期时间(它永远不会过期),则返回 -1。下面是如何使用它的说明:

127.0.0.1:6379> TTL mykey
(integer) 30

在这个例子中,我们查看 mykey 剩余的时间,它被设置为在 60 秒后过期。该命令返回 30,表示还有 30 秒键就会过期。

删除已过期的键

当 Redis 中的键过期时间达到时,Redis 会自动删除该键。当然,你也可以使用命令 DEL 手动删除此键。如果你想在键过期之前删除它,这会很有用。下面是如何使用它的说明:

127.0.0.1:6379> DEL mykey
(integer) 1

在这个例子中,我们使用命令 DEL 手动删除 mykey 键。运行此命令后,该键将不再存在于数据库中。

在 Navicat 中设置过期键

在 Navicat 中,数据编辑器包含一个 TTL 下拉列表,用于设置键的过期时间:

TTL_dropdown (74K)

TTL 下拉列表包括“无 TTL”、“过期時间 (秒)”和“过期時间 (本地时间)”三个选项。下面是如何是如何设置键在 60 秒后过期:

expire_in_60_seconds (21K)

点击“应用”按钮后,键的过期信息将设置成功。

过期键的常见用例

在 Redis 中,过期键可以用于各种场景,以有效地管理数据:

1. 缓存

Redis 常被用作缓存层。通过为缓存键设置较短的过期时间,可以确保缓存中的数据是最新的和相关的,避免存储过时的数据。

2. 会话管理

使用 Redis 可以更轻松地管理 Web 应用程序中的用户会话,为一定时间后不再活动的数据设置会话数据过期可以帮助释放资源并增强安全性。

3. 速率限制

速率限制是 API 限流的一个常见用例。Redis 可以通过在预定义时间后设置速率限制键的过期时间,来计数并限制客户端在特定时间范围内的请求数量。p>

4. 临时数据存储

Redis 可以用作后台任务或临时数据处理中的临时数据存储。过期键可以自动清理不再需要的数据,减少手动干预。

结语

在本文中,我们了解了在 redis-cli 和 Navicat for Redis 中如何设置 Redis 键的过期时间,以及如何在各种场景中应用这个功能。Redis 的过期键是一个强大的功能,它有助于高效地管理数据,确保过时或临时数据自动从数据库中删除。无论你使用 Redis 进行缓存、会话管理、速率限制还是临时数据存储,为键设置过期时间都可以显著提高应用程序的性能和可靠性。

 

Redis 相关技术文章

开始使用 Redis

Navicat for Redis 功能介绍

Redis 数据类型

如何在 Redis 中处理键值

Redis Pub/Sub 指南

Redis 列表 | 概述

http://www.lryc.cn/news/189231.html

相关文章:

  • IDC服务器商是如何保护服务器的数据安全
  • c++中什么时候用double?
  • TCP/IP(四)TCP的连接管理(一)三次握手
  • bash上下键选择选项demo脚本
  • cf 1886A
  • Spring5应用之事务属性
  • C# 搭建一个简单的WebApi项目23.10.10
  • VGG卷积神经网络实现Cifar10图片分类-Pytorch实战
  • CentOS 7文件系统中的软链接和硬链接
  • 【AI】深度学习——前馈神经网络——全连接前馈神经网络
  • 超简单的视频截取方法,迅速提取所需片段!
  • ArcGIS/GeoScene脚本:基于粒子群优化的支持向量机回归模型
  • vue3组件的通信方式
  • Qt QPair
  • K8S云计算系列-(3)
  • ardupilot罗盘数据计算航向
  • 第六章:最新版零基础学习 PYTHON 教程—Python 正则表达式(第一节 - Python 正则表达式)
  • docker安装Jenkins完整教程
  • [CISCN 2019初赛]Love Math - RCE(异或绕过)
  • C++ 使用getline()从文件中读取一行字符串
  • JS进阶-原型
  • 虹科方案 | 汽车CAN/LIN总线数据采集解决方案
  • HTML5+CSSDAY4综合案例一--热词
  • 【源码】hamcrest 源码阅读 泛型 extends 和迭代器模式
  • IntelliJ IDEA 2023.1 版本可以安装了
  • 安全论坛和外包平台汇总
  • 9-2-Dataset创建-import调用
  • XSS原理
  • 记一个带批注、表头样式的导入导出excel方法(基于easyexcel)
  • 二叉搜索树--新增节点-力扣 701 题