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

【Redis | 第一篇】Redis常见命令

目录

一、Redis数据结构介绍

二、Redis的通用命令

三、String类型

3.1 key的层级结构

四、Hash类型

五、List类型

六、Set类型


一、Redis数据结构介绍

Redis是一个key-value的数据库,key一般是字符串类型,不过value的类型多种多样。

二、Redis的通用命令

通用命令是不区分数据类型的操作,主要用于对 Key 本身进行管理。

  • KEYS pattern

    • 功能:查找所有符合给定模式(pattern)的 key。例如KEYS *会查出所有的 key。

    • 注意:在生产环境中应当尽量避免使用,因为 Redis 是单线程处理,当 key 数量极其庞大时,该命令会阻塞服务器。

  • DEL key [key ...]

    • 功能:删除给定的一个或多个 key。如果 key 不存在,则直接忽略。

    • 返回值:被实际删除的 key 的数量。

  • EXISTS key [key ...]

    • 功能:检查给定 key 是否存在。

    • 返回值:若 key 存在返回 1,否则返回 0。传入多个 key 时,返回存在的 key 的总数。

  • EXPIRE key seconds

    • 功能:为指定的 key 设置过期时间(单位为秒)。过期后,该 key 会被自动删除。

  • TTL key

    • 功能:返回给定 key 的剩余生存时间(Time To Live,单位为秒)。

    • 返回值:如果没设置过期时间返回-1;如果 key 不存在或已过期返回-2;否则返回剩余秒数。

三、String类型

String 是 Redis 最基本的数据类型,一个 key 对应一个 value。它可以包含任何数据,比如文本、数字。

其value是字符串,不过根据字符串的格式不同又分为三类:

  • string:普通字符串
  • int:整数类型,可以做自增、自减操作
  • float:浮点类型,可以做自增、自减操作

底层是字节数组形式存储。最大空间不能超过512MB。

  • SET key value

    • 功能:添加或修改已经存在的 String 类型的键值对。

  • GET key

    • 功能:获取指定 key 的值。如果 key 不存在,返回nil

  • MSET key value [key value ...]

    • 功能:批量添加多个 String 类型的键值对。

  • MGET key [key ...]

    • 功能:批量获取多个 String 类型的 key 的值。

  • INCR key

    • 功能:将 key 中储存的数字值增一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。常用于计数器。

  • SETNX key value

    • 功能:只有在 key 不存在时才设置 key 的值(Set if Not eXists)。常用于实现分布式锁。

3.1 key的层级结构

Redis的key允许有多个单词形成层级结构,多个单词之间用 ":" 隔开,格式如下:

项目名:业务名:类型:id

这个格式并非固定,也可以根据自己的需求来删除或添加词条。例如我们的项目名称叫heima,有user和product两种不同类型的数据,我们可以这样定义key:

user相关的key——heima:user:1
product相关的key——heima:product:1

如果Value是一个Java对象,例如一个User对象,则可以将对象序列化为JSON字符串后存储:

使用 " : " 分级后在可视化窗口中可以看到明显的层级结构。

四、Hash类型

Hash 是一个键值对集合,特别适合用于存储对象(类似于 Java 中的 Map<String, String>)。

我们首先看String结构将对象序列化后的存储形式,这种形式对于修改对象中的指定的字段时很不方便:

Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CURD:

  • HSET key field value [field value ...]

    • 功能:为指定 Hash 类型 key 中的字段(field)赋值。在较新的 Redis 版本中,HSET 已经支持一次性设置多个 field-value。

  • HGET key field

    • 功能:获取指定 Hash 类型 key 中给定字段的值。

  • HMGET key field [field ...]

    • 功能:批量获取指定 Hash 类型 key 中多个字段的值。

  • HGETALL key

    • 功能:获取指定 Hash 类型 key 中所有的字段和值。

  • HDEL key field [field ...]

    • 功能:删除指定 Hash 类型 key 中的一个或多个字段。

  • HKEYS key/HVALS key

    • 功能:分别获取 Hash 表中的所有字段名(fields)或所有值(values)。

五、List类型

List 是一个简单的字符串列表,按照插入顺序排序。底层实际上是一个双向链表,对两端的操作性能极高,但通过索引访问中间元素的性能较差。

  • LPUSH key element [element ...]

    • 功能:将一个或多个元素插入到列表的表头(左侧)。

  • RPUSH key element [element ...]

    • 功能:将一个或多个元素插入到列表的表尾(右侧)。

  • LPOP key

    • 功能:移除并返回列表的第一个元素(左侧弹出)。

  • RPOP key

    • 功能:移除并返回列表的最后一个元素(右侧弹出)。

  • LRANGE key start stop

    • 功能:返回列表中指定区间内的元素。0表示第一个元素,-1表示最后一个元素。例如LRANGE key 0 -1会返回列表中的所有元素。

执行PUSH操作:

六、Set类型

Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。常用于交集、并集、差集等操作。

  • SADD key member [member ...]

    • 功能:向集合添加一个或多个成员,已经存在的成员将被忽略。

  • SREM key member [member ...]

    • 功能:移除集合中的一个或多个成员。

  • SMEMBERS key

    • 功能:返回集合中的所有成员。

  • SISMEMBER key member

    • 功能:判断 member 元素是否是集合 key 的成员。

  • SINTER key [key ...]/SUNION/SDIFF

    • 功能:分别计算并返回多个集合的交集(SINTER)、并集(SUNION)和差集(SDIFF)。常用于共同关注、好友推荐等功能。

http://www.gsyq.cn/news/1336970.html

相关文章:

  • 【Rust + Tauri 2 + TypeScript + Tailwind CSS 4 桌面应用 UI 组件选型深度对比(2026版)】
  • 别再硬套RBAC了!用Filebrowser的‘文件夹规则’搞定多级文件权限(附实战配置)
  • python conda正确安装cuda版本的pytorch
  • 示波器RIGOL与UltraSigma截图的使用
  • C 语言单向链表基础操作详解
  • 2026深度前瞻:制造业生产合规管控,未来有哪些智能化发展方向?
  • B站SEO优化底层逻辑:以用户需求为核心,解锁低成本流量密码
  • AI Agent将如何重构制造业的安全生产隐患识别模式?深度理解与实在Agent闭环实战
  • 从选题到定稿零焦虑?okbiye AI 本科论文写作,把 “熬大夜” 的时间还给你
  • Anthropic《创始人手册:打造AI原生创业公司》Claude(中文精读版)完整38页pdf
  • 你的舵机控制代码可能一直写错了:从PWM占空比公式到SG90/MG996R舵机平滑运动避坑指南
  • 手把手教你用示波器抓CAN总线波形:从SOF到EOF的保姆级解析(附位填充实战)
  • 2026年4月西藏靠谱的体育看台源头厂家推荐,体育看台/雨棚/遮阳棚/推拉蓬/电动推拉棚,体育看台生产厂家怎么选择 - 品牌推荐师
  • STM32G474实战:用CubeIde配置互补PWM驱动电机,这10个坑我帮你踩过了
  • 为什么你的Midjourney时装图总被拒稿?揭秘Pantone TPX数据库未公开调用逻辑及RGB→PMS精准映射公式
  • 轻松实现Zoho系统与轻易云数据集成平台的无缝对接
  • InterSystems IntelliCare 成为首个获得欧盟医疗器械法规认证的 AI 原生EHR系统
  • 驭势科技上市首日破发,L4级自动驾驶商业化盈利之路仍待突破
  • 团队项目空间、角色继承链、资产水印策略——Midjourney新功能三大硬核模块详解,错过将丧失企业级部署资格
  • Gradiant宣布完成E轮融资,公司估值达20亿美元,助力加快AI、半导体以及工业水务基建领域布局
  • 保姆级教程:用ROS2的Component机制和TF2实现小乌龟跟随(C++/Python双版本)
  • 【AI】了解ChatMemory 底层实现机制
  • STM32F103标准库硬件IIC+DMA驱动AHT20温湿度传感器(附完整工程代码)
  • 第一次投学术会议?这份全流程指南请收好
  • 导师推荐!盘点2026年全网爆红的的降AI率软件
  • ROS2 Foxy下,六轴IMU串口数据解析与Rviz2可视化实战(避坑串口驱动与协议)
  • 给 AI Agent 写一份 Action Manifest:让工具调用从“能跑”变成“可控”
  • 一线观察:昆明装修供应商长期使用的真实表现
  • 从YOLOv5实战反推:手把手在WSL2里搭建PyTorch 1.12 + CUDA 11.3 环境(附国内镜像加速)
  • 小程序点单功能从0到上线:4种模式的技术选型与配置实战