news 2026/10/14 3:30:11

Redis 入门看这篇就够!客户端分类与 8 个核心命令实操

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Redis 入门看这篇就够!客户端分类与 8 个核心命令实操

目录

一、Redis客户端概述

二、Redis常用命令

2.1 set命令

2.2 get命令

2.3 keys命令

2.4 exists命令

2.5 del命令

2.6 expire命令

2.7 ttl命令

2.8 type命令

三、小结


一、Redis客户端概述

redis是一种客户端-服务器结构的程序,其核心设计围绕着一个独立的服务器进程与多个客户端之间的通信展开。开发人员通过在redis客户端上使用命令操作数据与redis服务器进行通信,以此来进行数据存储与访问的操作。

常见redis客户端有三种形式:

  • 自带命令行的客户端(通常是使用redis-cli命令进入redis客户端)

例如在linux操作系统进入redis客户端:

  • 图形化界面的客户端(桌面程序/web程序)

  • 基于redis的api自行开发的客户端

由于这种情况要根据具体的业务开发客户端,此处就不举例说明了。

在日常的开发中,使用命令行和自行开发的情况较多,相反,使用图形化界面的情况就较少。那么有的小伙伴就会问了,图形化界面不应该更加方便,更有利于开发人员使用嘛?

此处的回答是,使用起来方便是方便,但图形化界面的客户端依赖Windows操作系统,那么在开发的过程中连接redis服务器就会有诸多限制,例如此过程要经过一系列跳板机、堡垒机,并且还存在权限的验证,这样反而降低了开发效率。

二、Redis常用命令

进入到自带命令行的redis客户端后,如何来操作数据,以下8种是开发过程中常用的通用命令:

2.1 set命令

▶️语法结构:SETkeyvalue

前面的文章中提到,redis中的数据是以键值对的形式存储的,key为键,value为值。当执行成功会返回OK,失败则返回(nil),此处的nil与java语法中的null意义相同,都表示空值或不存在。

📌实操过程如下:

从图中的命令和语法结构的大小写可以观察到,redis命令是不区分大小写的,和mysql等数据库相似。那么存储成功的数据到哪里查看是否真的存好了呢,就需要使用到接下来的get或keys命令了。

2.2 get命令

▶️语法结构:GETkey

想要访问某个键值对的value值,在get命令后加上键值就可以。若key值存在则返回key对应的value值,若不存在,则返回nil。

时间复杂度:O(1) ,因为redis存储数据和hash表相似,都是通过一系列计算得到相应的下标,故时间复杂度为O(1)。

📌实操过程如下:

1.key存在时

2.key不存在时

2.3 keys命令

▶️语法结构:KEYSpattern

keys命令的作用是查找包含指定字符串的key,而pattern是用来描述指定字符串的子句,例如要查询以h开头,后面任意个任意字符的,llo结尾的key值,此时的pattern就可以写作h*llo。如果找得到,则返回所有符合条件的key值;如果找不到,则返回(empty array)

📌实操过程如下:

匹配成功时:

匹配失败时:

关于pattern中的特殊字符的说明,常用特殊字符有?、*、[ ]、[^ ]

  • ?:指匹配任意一个字符
  • *:指匹配任意大于等于0个任意字符
  • []:指可以匹配[ ]内的任意一个字符,例如[ae]表示可以匹配该位置为a或者e的key。
  • [^]:指排除[^]内的所有字符,例如[^e]表示该位置排除为e的key。

💡需要注意的是,在实际开发过程中,应当避免使用keys命令,因为如果redis中存储了上数万条甚至更多数据,一下查出满足要求的key值需要的遍历时间无法预估,并且redis是单线程模型,就可能造成redis阻塞,甚至崩溃。

2.4 exists命令

▶️语法结构:EXISTSkey [key1...]

exists命令用来表示key是否存在,若存在则返回1;若不存在,则返回0;

时间复杂度:O(N),此处的N表示key的个数。

📌实操过程如下:

💡此时产生了一个问题,使用两次exists分别查找key1,key2和一次exists 同时查找key1,key2,有区别嘛?

答案是,当然有区别。我们知道,redis客户端与服务器之间的通信依赖网络通信,发送的命令越多,网络开销也就越大,如图:

2.5 del命令

▶️语法结构:DELkey [key1...]

del命令用来删除1个或多个键值对,返回删除成功的键值对的个数。

时间复杂度:O(N),此处的N表示key的个数。

📌实操过程如下:

2.6 expire命令

▶️语法结构:EXPIREkeyseconds

expire 命令用来给键值对设置过期时间,单位为s(秒),当到达设定的时间后,redis会自动将该键值对删除。key存在则返回1,不存在则返回0;

📌实操过程如下:

图中给heeello键设置过期时间为30s,后面的ttl用来查看heeello的剩余存活时间,当剩余存活时间为-2时,表示已经删除该键值对了。

2.7 ttl命令

▶️语法结构:TTLkey

TTL命令用来查看key的剩余存活时间。返回的是key剩余存活的秒数,当key已经不存在了之后,则返回-2;

📌实操过程如下:

2.8 type命令

▶️语法结构:TYPEkey

上一篇文章给大家介绍过key是string类型的数据,但key所对应的value值的数据类型可以有很多种,type命令的作用是查看该key所对应的value值的数据类型。

当然我们目前介绍到的存储数据的set方法存储的都是string类型的value值,后续的文章会介绍各种value的数据类型。简单看一下运行的示例:

📌实操过程如下:

三、小结

本篇文章给大家介绍了有关redis客户端形式,8中常用命令的使用方法以及示例。下期和大家讨论关于redis的过期策略相关的内容,感兴趣的小伙伴不妨给个关注再走叭~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/14 3:29:54

perf、ftrace工具定位线上内存泄漏、碎片问题方法

perf 和 ftrace 定位线上内存问题,核心是遵循“先统计量化,再追踪定性”的路径。perf kmem擅长快速指出“哪里有问题”,而 ftrace 的跟踪点则能回答“为什么会这样”。第一步:使用 perf kmem 量化问题(找出热点&#x…

作者头像 李华
网站建设 2026/10/14 3:29:54

衣境智算——AI驱动的智能穿搭与服装全生命周期管理平台

一、系统总览 衣境智算是一款面向 2027 年的 AI 智能穿搭与服装全生命周期管理平台,覆盖「体型建模 → 风格画像 → 智能搭配 → 洗护管理 → 碳足迹核算 → 二手流转 → 回收再生」的完整闭环。平台以 3D 人体建模、多模态大模型、数字孪生衣橱、强化学习与隐私计算…

作者头像 李华
网站建设 2026/10/14 3:29:13

Halcon 线条、点提取(Lines Points)详解与算子说明

Halcon 线条、点提取(Lines & Points)详解与算子说明 参考来源:Halcon 17.12 Operator Reference — Filters/Lines 章节(4 算子)、Filters/Points 章节(7 算子),共 11 个算子全覆盖 适用版本:Halcon 17.12(主基准)◀ 20.11 / 22.11 / 24.05 官方示例路径:exam…

作者头像 李华
网站建设 2026/10/14 3:28:14

高项论文只背3篇押题,风险可能比你想得大

“老师,给我三篇最可能考的论文,我背熟就行。”这句话听起来很省时间,也最容易把整个论文备考变成一次押注。论文方向可以分析,重点内容可以准备,但方向接近不等于题目相同,主题相同也不等于子题相同。一旦…

作者头像 李华
网站建设 2026/10/14 3:28:01

AI硬件选型实战:从需求拆解到方案落地的核心判断标准

这几年AI硬件产品像雨后春笋一样往外冒,AI翻译耳机、AI宠物相机、AI儿童陪伴机器人、AI运动姿态纠正仪、AI会议转写盒子……好像只要带个屏幕或者麦克风的设备,不跟AI沾点边都不好意思发布。但真正被拉去参与选型评估的人,心里多半是发虚的。…

作者头像 李华
网站建设 2026/10/14 3:27:57

10.1 寸带扩展坞维保加固平板|分体式维保终端硬件基线选型评估

不少硬件工程师做外场维修保障项目,希望一台设备兼顾手持查阅资料和多路特种总线测试。如果把 1394B、AFDX、万兆光网全部做到平板本体,机身厚重丧失便携;选择分体平板 扩展坞方案时,对接连接器是最大风险点,振动冲击…

作者头像 李华