Redis通用命令

Redis是一种高性能的开源内存数据结构存储,用作数据库、缓存和消息代理。它支持多种数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)及有序集合(sorted sets)。掌握Redis的常用命令,可以帮助我们更高效地进行数据操作和管理。

对于这些不同的数据结构redis提供了不同的命令对其进行操作,然而除了这些特定的数据结构对应的操作的命令之外,还有一些通用命令。注意redis命令也不区分大小写。

命令作用
get根据key来取value
set把key和value存储进去
keys用来查看匹配规则的key
exists用来判断指定key是否存在
del删除指定的key
expire给key设置过期时间
ttl查询key的过期时间
type查询key对应的value的类型

 1. get&set

命令作用
get根据key来取value
set把key和value存储进去

演示:

如果key不存在,就会返回nil(null)

2. keys

Redis 有5种数据结构,但它们都是键值对种的值,对于键来说有一些通用的命令。keys

语法:

1 KEYS pattern
返回所有满⾜样式(pattern)的 key。 KEYS命令的模式匹配( pattern)支持以下通配符:
  • *:匹配任意数量的字符(包括零个字符)。
  • ?:匹配一个字符。
  • [abc]:匹配方括号中的任意一个字符。
  • [a-z]:匹配指定范围内的任意字符。
  • [^a]除了a以外的都能匹配到。
时间复杂度:O(N)
返回值:匹配 pattern 的所有 key。
注意:
KEYS命令会扫描整个数据库来查找匹配的键,这在大数据集上会非常耗时。可能会导致Redis在执行期间阻塞,影响其它命令的执行。因此,在生产环境中应避免使用 KEYS命令。

 3. exists

EXISTS命令用于检查指定的键在Redis数据库中是否存在。它返回一个整数,表示键存在的数量。这个命令非常实用,可以帮助我们判断某个键是否已经被设置,进而决定接下来的操作步骤。

exits命令语法

EXISTS key [key ...]

key:要检查的一个或多个键

EXISTS 命令的返回值

  • 如果检查的键存在,返回 1。
  • 如果检查的键不存在,返回 0。
  • 如果指定了多个键,返回存在的键的数量。

EXISTS 命令示例

示例 1:检查单个键是否存在

127.0.0.1:6379> SET mykey "Hello, Redis!"
OK
127.0.0.1:6379> EXISTS mykey
(integer) 1
127.0.0.1:6379> EXISTS anotherkey
(integer) 0

在这个示例中,我们设置了一个键 mykey,然后用 EXISTS 命令检查 mykey 和 anotherkey 是否存在。结果显示 mykey 存在,而 anotherkey 不存在。

示例 2:检查多个键是否存在

127.0.0.1:6379> SET key1 "value1"
OK
127.0.0.1:6379> SET key2 "value2"
OK
127.0.0.1:6379> EXISTS key1 key2 key3
(integer) 2

在这个示例中,我们设置了 key1 和 key2,然后检查 key1、key2 和 key3 是否存在。结果显示有两个键存在。

EXISTS 命令的使用场景:
数据验证:在进行一些操作前,通过EXISTS命令验证键是否存在,以避免不必要的错误。
条件执行:根据键是否存在,决定执行不同的逻辑,比如初始化数据、更新数据或删除数据。

结合其他命令使用
示例 1:条件设置值

127.0.0.1:6379> EXISTS mykey
(integer) 0
127.0.0.1:6379> SET mykey "new value" NX
OK
127.0.0.1:6379> EXISTS mykey
(integer) 1

在这个示例中,我们先检查 mykey 是否存在,如果不存在,则使用 SET 命令和 NX 参数(仅当键不存在时才设置值)来设置新值。

127.0.0.1:6379> EXISTS mykey
(integer) 1
127.0.0.1:6379> DEL mykey
(integer) 1
127.0.0.1:6379> EXISTS mykey
(integer) 0

在这个示例中,我们检查 mykey 是否存在,如果存在,则删除该键。

4. del

语法命令

DEL key [key ...]  #key:要删除的一个或多个键。

DEL 命令的返回值:返回被删除键的数量。如果某些键不存在,则它们不计入总数。

DEL 命令示例

# 删除单个键
127.0.0.1:6379> SET mykey "Hello, Redis!"
OK
127.0.0.1:6379> DEL mykey
(integer) 1
127.0.0.1:6379> EXISTS mykey
(integer) 0# 删除多个键
127.0.0.1:6379> SET key1 "value1"
OK
127.0.0.1:6379> SET key2 "value2"
OK
127.0.0.1:6379> DEL key1 key2 key3
(integer) 2
127.0.0.1:6379> EXISTS key1
(integer) 0
127.0.0.1:6379> EXISTS key2
(integer) 0
127.0.0.1:6379> EXISTS key3
(integer) 0

性能注意事项

  • 批量删除:一次性删除多个键,比逐个删除效率高。Redis在内部会进行优化,减少命令处理的开销。
  • 大键删除:对于包含大量数据的大键,删除操作可能会导致阻塞。可以考虑将数据分片,逐步删除以减少影响。

5. expire 和 TTL

在Redis中,管理键的生命周期是一个非常重要的功能。EXPIRETTL命令用于设置和查询键的过期时间。通过这两个命令,可以控制数据的自动过期和有效期查询,方便管理缓存等场景。

语法命令

EXPIRE key seconds
  • key:要设置过期时间的键。
  • seconds:过期时间,以秒为单位。

EXPIRE 命令示例

# 设置过期时间
127.0.0.1:6379> SET mykey "Hello, Redis!"
OK
127.0.0.1:6379> EXPIRE mykey 10
(integer) 1# 更新过期时间
127.0.0.1:6379> EXPIRE mykey 20
(integer) 1# 如果键已经存在过期时间,可以通过再次执行EXPIRE命令来更新其过期时间。

TTL 命令语法

TTL key

key:要查询剩余生存时间的键

TTL 命令示例

# 查询剩余生存时间
127.0.0.1:6379> TTL mykey
(integer) 15# 键不存在或无过期时间
127.0.0.1:6379> TTL nonexistentkey
(integer) -2127.0.0.1:6379> SET mykey "Hello again!"
OK
127.0.0.1:6379> TTL mykey
(integer) -1# 当键不存在时,TTL命令返回 -2。
# 当键存在但没有设置过期时间时,TTL命令返回 -1。# 结合
127.0.0.1:6379> SET session "user123"
OK
127.0.0.1:6379> EXPIRE session 3600
(integer) 1
127.0.0.1:6379> TTL session
(integer) 3599

注意事项

  • 过期时间的精度EXPIRE命令设置的过期时间精度为秒。如果需要更高的精度,可以使用PEXPIRE命令,单位为毫秒。
  • 过期键的删除:Redis通过定期检查和惰性删除两种机制来删除过期键。定期检查是随机进行的,而惰性删除是在访问过期键时触发的。
  • 持久化和过期键:在使用RDB或AOF持久化时,过期时间也会被保存。当Redis重启时,会重新计算并删除已过期的键。

 EXPIRETTL命令是Redis中管理键生命周期的基础命令。通过设置过期时间和查询剩余时间,可以有效地管理数据的有效期,避免内存泄漏和过期数据占用存储。合理使用这两个命令,可以提升Redis的性能和数据管理效率。在实际应用中,结合具体业务需求,灵活运用这些命令,将能实现更智能和高效的数据管理策略。

6. type

TYPE命令用于返回指定键的值类型。这个命令在调试和数据管理中非常有用,可以帮助我们了解某个键所存储的数据类型,从而决定如何处理它。

TYPE 命令语法

TYPE key  # key:要查询类型的键

TYPE 命令的返回值

TYPE命令返回一个字符串,表示键的值类型。如果键不存在,则返回none

可能的返回值包括:

  • string:字符串类型
  • list:列表类型
  • set:集合类型
  • zset:有序集合类型
  • hash:哈希类型
  • stream:流类型
  • none:键不存在

命令示例

# 查询字符串类型
127.0.0.1:6379> SET mystring "Hello, Redis!"
OK
127.0.0.1:6379> TYPE mystring
string# 查询列表类型 
127.0.0.1:6379> LPUSH mylist "element1"
(integer) 1
127.0.0.1:6379> TYPE mylist
list# 查询不存在的键
127.0.0.1:6379> TYPE nonexistentkey
none

结合其他命令使用

我们创建了两个键 mystringmylist,分别为字符串和列表类型。通过使用 TYPE 命令,我们确定了它们的类型,然后删除了字符串类型的键 mystring

# 删除特定类型的键
127.0.0.1:6379> SET mystring "Hello"
OK
127.0.0.1:6379> LPUSH mylist "World"
(integer) 1
127.0.0.1:6379> KEYS *
1) "mystring"
2) "mylist"
127.0.0.1:6379> TYPE mystring
string
127.0.0.1:6379> TYPE mylist
list
127.0.0.1:6379> DEL mystring
(integer) 1
127.0.0.1:6379> KEYS *
1) "mylist"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/852932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABB 和PLC ProfinN 通信

1,设置IP 地址 2, 设置站名称 3, 修改传送区大小 4,配置DI DO 5,导出 6,安装gsd 文件 7,建立通信

深度学习笔记: 最详尽估算送达时间系统设计

欢迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有问题可以随时与我交流, 谢谢大家! 估算送达时间 1. 问题陈述 构建一个模型来估算在给定订单详情、市场条件和交通状况下的总送达时间。 为…

LeetCode | 168.Excel表列名称

这道题一开始以为是简单的进制转换问题,用的以往的思路,对于一般性的进制转换题目,只需要不断地对 columnNumber 进行 % 运算取得最后一位,然后对 columnNumber 进行 / 运算,将已经取得的位数去掉,直到 col…

ZYNQ7 Processing System IP核中PS侧Uart的用法

在ZYNQ7 Processing System IP核中集成的UART控制器是一个中全双工异步接收器和发送器,支持广泛的可编程波特率和I/O信号格式,可以适应自动奇偶校验生成和多主机检测模式。 UART操作由配置和模式寄存器控制。使用状态寄存器、中断状态寄存器和调制解调器…

JVM原理之运行时数据区域

Java运行时数据区(Runtime Data Area)是Java虚拟机(JVM)在运行Java程序时内部维护的一系列数据区域。这些区域共同协作,确保Java程序能够高效、稳定地运行。本文将详细介绍Java运行时数据区的结构和作用。 java虚拟机运行时数据区域 根据《Java虚拟机规范》规定,jvm内存…

【网安AIGC专题】46篇前沿代码大模型论文、24篇论文阅读笔记汇总

网安AIGC专题 写在最前面一些碎碎念课程简介 0、课程导论1、应用 - 代码生成2、应用 - 漏洞检测3、应用 - 程序修复4、应用 - 生成测试5、应用 - 其他6、模型介绍7、模型增强8、数据集9、模型安全 🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻…

EasyGBS服务器和终端配置

服务器配置 修改easygbs.ini sip/host为本机IP,否则终端能登录,无法视频。 [sip] host192.168.3.190 终端用于登录的用户名和密码 default_usertest default_passwordtest1234 default_guest_userguest default_guest_passwordtest1234终端配置 关…

【Postman的接口测试工具介绍】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

Excel最基本的常用函数

最基本最常用的函数,掌握了可以解决大部分问题。 (笔记模板由python脚本于2024年06月11日 19:05:56创建,本篇笔记适合熟悉excel的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣…

原型模式(大话设计模式)C/C++版本

原型模式 C 参考&#xff1a;https://www.cnblogs.com/Galesaur-wcy/p/15924300.html #include <iostream> #include <string> using namespace std;class WorkExprerience { private:string workDate;string company;public:WorkExprerience() {}~WorkExprerie…

14.基于人类反馈的强化学习(RLHF)技术详解

基于人类反馈的强化学习&#xff08;RLHF&#xff09;技术详解 RLHF 技术拆解 RLHF 是一项涉及多个模型和不同训练阶段的复杂概念&#xff0c;我们按三个步骤分解&#xff1a; 预训练一个语言模型 (LM) &#xff1b;训练一个奖励模型 (Reward Model&#xff0c;RM) &#xf…

RabbitMQ实践——利用一致性Hash交换器做带权重的调度

在《RabbitMQ实践——利用一致性Hash交换器做负载均衡》一文中&#xff0c;我们介绍了如何开启一致性hash交换器&#xff0c;并实现了消息的负载均衡&#xff0c;以达到横向扩展消费者数量的能力。 但是现实中&#xff0c;可能存在这样的场景&#xff1a;一些队列所在的机器配置…

交易文本数据:情感分析 -另类数据交易- 舆情数据

交易文本数据:情感分析 这是三章中的第一章,专门介绍使用自然语言处理(NLP)和机器学习从文本数据中提取交易策略信号。 文本数据内容丰富但高度非结构化,因此需要更多预处理才能使ML算法提取相关信息。一个关键挑战是在不丢失其含义的情况下将文本转换为数值格式。我们将介绍…

第J7周:对于ResNeXt-50算法的思考

本文为&#x1f517;365天深度学习训练营中的学习记录博客 &#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 &#x1f680; 文章来源&#xff1a;K同学的学习圈子深度学习第J6周&#xff1a;ResNeXt-50实战解析K同学的学习圈子 在 ResNeXt 网络中&#xff0c;如果…

LeRobot——Hugging Face打造的机器人领域的Transformer架构

前言 如友人邓博士所说&#xff0c;“用 Stanford aloha 课题组提供的训练数据&#xff0c;训练他们研发的 Action Chunking Transformer 动作规划模型&#xff0c;训练结果&#xff0c;能用&#xff0c;但是稳定性有待提高 要提高稳定性&#xff0c;看来必须修改 Stanford a…

STM32学习笔记(三)--EXTI外部中断详解

&#xff08;1&#xff09;配置步骤1.配置RCC 打开外设时钟2.配置GPIO 选择端口输入模式3.配置AFIO 选择要用的一路GPIO 连接至EXTI 4.配置EXTI 选择边沿触发方式 上升沿 下降沿 双边沿 选择触发响应方式 中断响应 事件响应 5.配置NVIC 选择一个合适的优先…

喜讯:NetMarvel 深度合作伙伴「点金石」斩获2024·MAMA 营销增长奖

全球市场瞬息万变&#xff0c;如何让增长做到有迹可循&#xff1f; 5月20日&#xff0c;由 AppsFlyer 举办的「2024 MAMA 移动互联网高层峰会」在三亚拉开序幕。在本届颁奖典礼上&#xff0c;NetMarvel 深度合作伙伴——点金石&#xff08;GameGoing&#xff09; 荣获「营销增长…

PyQt5学习系列之新项目创建并使用widget

PyQt5学习系列之新项目创建并使用widget 前言报错新建项目程序完整程序总结 前言 新建项目&#xff0c;再使用ui转py&#xff0c;无论怎么样都打不开py文件&#xff0c;直接报错。 报错 Connected to pydev debugger (build 233.11799.298)新建项目程序 # Press ShiftF10 to…

【计算机视觉】人脸算法之图像处理基础知识(一)

图像处理基础知识&#xff08;一&#xff09; 1.图像的构成 图像的构成可以包括以下几方面知识&#xff1a; 1.像素&#xff1a;图像的基本单位&#xff0c;是图像中的一个点。每个像素都有特定的位置和色彩值。在数字图像中&#xff0c;像素的颜色通常由红、绿、蓝&#xf…

本地密码记录工具-KeePass

文章目录 软件界面软件下载KeePass配置KeePass修改中文创建数据库配置数据库锁定配置账户密码为不同应用配置账号密码插件安装及使用 数据库同步 在此之前&#xff0c;没有使用过类似的账户密码记录工具&#xff0c;甚至完全没有接触过&#xff0c;由于Edge浏览器自带保存密码并…