【速成Redis】02 Redis 五大基本数据类型常用命令
前言:
上一节课,我们对redis进行了初步了解,和安装好了redis。
【速成Redis】01 Redis简介及windows上如何安装redis
https://blog.csdn.net/weixin_71246590/article/details/142319358?spm=1001.2014.3001.5501
该篇博客,我们正式开始学习redis的操作。
上节课我们讲到redis的数据类型有如下几种:

本篇我们将讲解:redis五大基本数据类型(也是就上图的第一列)的常用语句。
食用说明:初学者建议边看边看边敲。复习者可根据目录快速复习某个命令。
目录
1.字符串String
设置键值对:set key value
根据键取其值:get key
删除某个键:del key
判断一个键是否存在:exists key
查找所有的键:keys *
查找所有以ge结尾的键:*ge
删除所有的键:flushall
如何设置带有过期时间的键值对?
- setnx 和setex 的区别
2.list(列表)
lpush(头插元素)
lrange(查看当前元素)
lpop、rpop 命令也可以一次性删除多个元素
删除操作:
3.集合Set
新建/增加set中的元素:sadd set x y z
查看set中的成员:smember set
判断某个元素是否在set中:sismember set element
删除set中某个元素 :srem sourse element
4.有序集合sortedSet
创建一个集合/追加元素:zadd
查看集合中的元素:zrange
查看某个成员分数:zscore
查看某个成员排名(从大到小):zrevrank
- 删除有序集合中的某个成员:ZREM
- 对某个成员的分数进行增加ZINCRBY
- 删除某个排名范围内的成员ZREMRANGEBYRANK
5.哈希Hash
hset用法示例:设置名为person的集合的键值对
hget用法示例: 查看名为person的某个key对应的value
hgetall:查看某个集合里的所有的键值对
hdel:删除某个集合里的某个键值对
hexists:查看某个集合里的某个键值对是否存在
hkeys:获取所有键值对的key
hlen:获取所有键值对的数量
1.字符串String
redis insight 中也可以使用命令行。
- redis中的值以键值对的方式存储。
设置键值对:set key value
根据键取其值:get key
- redis里的键区分大小写
- redis里默认使用字符串存储数据,并且是二进制安全的,我们可以把很多类型的数据存储到redis当中,比如数字,布尔类型,序列化后的对象等。
删除某个键:del key
判断一个键是否存在:exists key
查找所有的键:keys *
查找所有以ge结尾的键:*ge
删除所有的键:flushall
(ps:redis中的值都是以二进制的形式存储的,默认是不支持中文的)
中文 -> 二进制
\x表示后面的是16进制
解决办法:
在连接服务时候加上一个raw参数,表示以原始形式显示内容:
redis-cli --raw
跟着练习的小伙伴们,这时候的命令行窗口已经很满了,我们需要清空屏幕:
清空屏幕:clear
如何设置带有过期时间的键值对?
- TTL命令查看键的过期时间(time to live :表示这个键还有多久过期)
ttl key
- 给已经存在的key设置过期时间:
expire key 10 (默认为单位为秒)
- 直接新建一个带有过期时间的键值对:
setex key seconds value
- setnx 和setex 的区别
setnx key value:当键不存在时,才新建该键,当键已经存在时,不做任何动作。
set key value:当键不存在时,新建该键。当键已经存在时,覆盖原value。
2.list(列表)
一般用来存储和操作一组有顺序的数据,类似数组。
lpush(头插元素)
lrange(查看当前元素)
lpush可以一次性添加多个元素~
当前list中的状况:
通过观察我们可以知道:lpush是头插法:元素添加到list头部
rpush是尾插法(元素添加到列表尾部),其用法与lpush类似。
![]()
看这个图可以理解四个关键字:进出都有两个方向
l代表左边(left),r代表右边(right)
lpop、rpop 命令也可以一次性删除多个元素
一次性删除两个元素:lpop list 2
(注意:redis版本大于6.2.0才能一次性删除多个元素)
查看列表元素:llen list
实现简单的消息队列:可以用 rpop让队尾的元素出队 ,用lpush让心元素进队头。
删除操作:
删除一个整个队列:del list
删除列表元素(理解为保留列表指定范围x-y内的元素):ltrim list x y
3.集合Set
set 为无序不重复集合,就是我们在数学上的那个集合。
list中的元素可以重复,而set中不可以。
set的命令以s开头
新建/增加set中的元素:sadd set x y z
查看set中的成员:smember set
验证set的唯一性,尝试添加已有元素:
0通常表示命令没有对目标数据造成实际变化,影响的元素数为0。
判断某个元素是否在set中:sismember set element
删除set中某个元素 :srem sourse element
(图片标注那里有个错别字啊啊啊,见谅)
我是故意的,让大家记住srem!!
集合的运算:
两个集合之间的交集、并集等运算,redis当中也是支持的。
4.有序集合sortedSet
有序集合,可以理解为优先级队列,每个元素有一个分数,代表权重。
创建一个集合/追加元素:zadd
查看集合中的元素:zrange
使用例子:
注意使用zadd关键字时是先分数再成员。
查看某个成员分数:zscore
zscore key member
![]()
查看某个成员排名(从小到大):zrank
zrank result member
注意:下标是从0开始的,这里的排名值的是升序排序(从小到大)的排名。
查看某个成员排名(从大到小):zrevrank
zrevrank result member
- 删除有序集合中的某个成员:ZREM
可以使用 ZREM命令来删除有序集合中的某个或多个成员。
ZREM key member [member ...]
示例:
ZREM result alice
- 对某个成员的分数进行增加ZINCRBY
可以使用ZINCRBY命令为有序集合中的某个成员增加指定的分数。
ZINCRBY
key increment member
示例:
ZINCRBY
result 10 sally
- 删除某个排名范围内的成员ZREMRANGEBYRANK
可以使用 ZREMRANGEBYRANK 命令根据成员的排名范围删除成员。排名是按分数从低到高排列。
ZREMRANGEBYRANK
key start stop
示例:
ZREMRANGEBYRANK result 0 2
该命令将删除 result 集合中排名从 0 到 2 的成员(排名从 0 开始)。
5.哈希Hash
哈希是一个字符类型的字段和值的映射表。键值对的集合。特别适合存储对象。
前面我们在学习字符串时所使用的set和get的操作在这里变成hset、hget
我们现在有一个对象person:
其name:taylor
其age:32
hset用法示例:设置名为person的集合的键值对
hget用法示例: 查看名为person的某个key对应的value
hgetall:查看某个集合里的所有的键值对
hdel:删除某个集合里的某个键值对
![]()
可以看到删除完之后只剩person了。
hexists:查看某个集合里的某个键值对是否存在
![]()
1表示name存在,0表示age不存在。
注意这里的exists是有s的,可以理解为第三人称单数(?)
hkeys:获取所有键值对的key
hlen:获取所有键值对的数量
相关文章:
【速成Redis】02 Redis 五大基本数据类型常用命令
前言: 上一节课,我们对redis进行了初步了解,和安装好了redis。【速成Redis】01 Redis简介及windows上如何安装redishttps://blog.csdn.net/weixin_71246590/article/details/142319358?spm1001.2014.3001.5501 该篇博客,我们正…...
UnLua扩展C++函数和蓝图自定义事件
一、通过BlueprintImplementableEvent标记扩展C函数 1、 这个标记表示C不需要实现,让蓝图/Lua重写。 2、首先在C中将LuaImp函数标记为BlueprintImplementableEvent,不需要实现,然后再GetIndex中调用该函数。 MyBaseActor.h UFUNCTION(Bluepr…...
干耳屎硬掏不出来怎么办?质量最好的可视挖耳勺推荐
很多干耳的小伙伴都会用普通耳勺来掏耳朵。由于普通耳勺由于其盲操作的特性,对于耳道非直线结构的清理存在诸多不便。所以市面上出现了可视挖耳勺,让我们清晰的看到自己耳道,更加安全的清洁耳朵。,可视挖耳勺这款产品在市场上越来…...
谷歌 Chrome 最新版升级:更强的安全检查功能守护你的上网安全
谷歌 Chrome 浏览器产品经理 Andrew Kamau 在最新发布的博文中宣布,Chrome 浏览器迎来了新一轮的安全升级。新版 Chrome 在后台自动运行安全检查功能,采取了额外的主动措施来保障用户的安全。 自动撤销通知权限 新版 Chrome 浏览器采用了一项基于谷歌安…...
深度学习自编码器 - 收缩自编码器(CAE)篇
序言 在深度学习的浪潮中,收缩自编码器( Compressive Autoencoder, CAE \text{Compressive Autoencoder, CAE} Compressive Autoencoder, CAE)作为自编码器的一种高级形式,正逐步崭露头角。收缩自编码器在保留自编码器核心功能—…...
Dubbo与SpringCloud的区别和优缺点
经常会有同学问我,Dubbo和SpringCloud的选择。甚至也经常会有面试官就这个问题刨根问底。 说实话,其实我不太喜欢回答这个问题,本质上来讲,Dubbo的SpringCloud可以算是完全不同赛道的两种东西,就好像问大家西瓜和土豆我…...
★ C++进阶篇 ★ 多态
Ciallo~(∠・ω< )⌒☆ ~ 今天,我将继续和大家一起学习C进阶篇第二章----多态 ~ ❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️ 澄岚主页:椎名澄嵐-CSDN博客 C基础篇专栏:★ C基础篇 ★_椎名澄嵐的博客-CSDN博客 …...
pg入门3—详解tablespaces2
pg默认的tablespace的location为空,那么如果表设置了默认的tablespace,数据实际上是存哪个目录的呢? 在 PostgreSQL 中,如果你创建了一个表并且没有显式指定表空间(tablespace),或者表空间的 location 为…...
python 爬虫 selenium 笔记
todo 阅读并熟悉 Xpath, 这个与 Selenium 密切相关、 selenium selenium 加入无图模式,速度快很多。 from selenium import webdriver from selenium.webdriver.chrome.options import Options# selenium 无图模式,速度快很多。 option Options() o…...
git分支管理的一些常用规范
一、分支命名规范 1.通常项目经理或者需求方会给需求开发做计划,约定一些编码,例如FN-01。此时这个需求指派给你,这个时候你可以在现有代码仓库的maser分支或者其他约定的开发分支checkout到本地,命名这个需求的开发分支为feat/F…...
GPT-4论文阅读
GPT-4 Technical Report论文阅读 文章目录 GPT-4 Technical Report论文阅读 Abstract训练的稳定性Training processPredictable scaling训练的稳定性多么难能可贵 Capabilities考试成绩传统的benchmark语言方面的能力Visual inputsSteerability LimitationsRisks & mitigat…...
this 指向
this 指向谁? 多数情况下,this 指向调用它所在方法的那个对象。 说得更通俗点,谁调的函数,this 就归谁。当调用方法没有明确对象时,this 就指向全局对象。在浏览器中,指向 window;在 Node 中,指向 Global。(严格模式下,指向 undefined) this 的指向是在调用时决定的…...
【贪心算法】贪心算法一
贪心算法一 1.柠檬水找零2.将数组和减半的最少操作次数3.最大数4.摆动序列 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.柠檬水找零 题目…...
windnd.hook_dropfiles中的create_buffer值太小无法拖放长文件名
今天在使用我之前的Python识别拖放的PDF文件再转成文本文件-CSDN博客发现,文件藏在路径太深入的地方,不能打开,因为拖放文件只能读取260个字节的文件名(b’路径),再查看windnd.hook_dropfiles函数ÿ…...
Gitlab runner的使用示例(二):Maven + Docker 自动化构建与部署
Gitlab runner的使用示例(二):Maven Docker 自动化构建与部署 在本篇文章中,我们将详细解析一个典型的 GitLab CI/CD 配置文件(gitlab-ci.yml),该文件主要用于通过 Maven 构建 Java 应用&…...
QNX Hypervisor(十)Linux Guest IPC 二
上文还遗留了一个问题,就是在测试ipc的时候挂死了。相关原理我写在了另外一篇文章。 内存管理 所以导致挂死的问题就是因为没有进行地址映射,mmu无法转换。从kernel代码看,只有ram区域才会进行映射。我们的qvmconf文件也确实没有配置0xb8000000,只配置了pass。 pass loc …...
怎样把PPT上顽固的图标删了
例如: 解决: 首先打开下载好的PPT模板,然后在视图选项卡里面找到幻灯片母版。 进入幻灯片母版后,找到第一页母版页就会看到LOGO了,这时使用鼠标就可以选中删除啦。...
【论文阅读】Slim Fly: A Cost Effective Low-Diameter Network Topology 一种经济高效的小直径网络拓扑
文章目录 Slim Fly: A Cost Effective Low-Diameter Network Topology文章总结1. 摘要2. indroduction3. 主要工作 主要思想references Slim Fly: A Cost Effective Low-Diameter Network Topology Slim Fly:一种经济高效的小直径网络拓扑 SC’14 Maciej Besta 苏…...
Prometheus使用Pushgateway推送数据
Pushgateway简介 Prometheus 的 Pushgateway 是一个简单的 HTTP 服务器,它允许数据被推送到该服务器,而不是通过拉取的方式获取。它的存在是为了让临时和批处理作业能够将其指标暴露给 Prometheus。由于这类作业可能存在的时长不足以被主动抓取…...
【Oracle】调优与oracle最大连接数配置
博主介绍: 大家好,我是想成为Super的Yuperman,互联网宇宙厂经验,17年医疗健康行业的码拉松奔跑者,曾担任技术专家、架构师、研发总监负责和主导多个应用架构。 技术范围: 目前专注java体系,DDD&…...
2026-04-06:字典序最小和为目标值且绝对值是排列的数组。用go语言,给你一个正整数 n 和一个整数 target。 你需要构造一个长度为 n 的整数数组,要求同时满足: 1.数组中所有元素的总
2026-04-06:字典序最小和为目标值且绝对值是排列的数组。用go语言,给你一个正整数 n 和一个整数 target。 你需要构造一个长度为 n 的整数数组,要求同时满足: 1.数组中所有元素的总和必须等于 target。 2.把数组里每个元素取绝对值…...
别再硬记索引了!Mujoco Python API实战:用`name`属性优雅读写机器人关节状态
别再硬记索引了!Mujoco Python API实战:用name属性优雅读写机器人关节状态 在机器人仿真开发中,我们常常陷入这样的困境:面对一个20自由度的机械臂,需要反复查阅文档确认data.qpos[12]对应的是哪个关节;当X…...
观察者同步才是物理学真正的基石:局部重叠如何自然衍生出全部现实架构
物理学三大支柱——量子理论、广义相对论、标准模型——各自以惊人的精度描述着世界,却始终无法拼成一张完整的图景。为什么必须是31维洛伦兹时空?为什么规范群偏偏是SU(3)SU(2)U(1)/Z₆?为什么粒子谱、质量层级、测量问题和量子引力兼容性始…...
生成剧本杀软件2025推荐,创新剧情设计工具引领潮流
剧本杀软件2025推荐,创新剧情设计工具引领潮流随着剧本杀市场的蓬勃发展,越来越多的创作者和玩家对剧本杀软件的需求日益增长。为了帮助大家在众多选择中找到最适合自己的工具,本文将推荐一款在2025年备受瞩目的剧本杀软件——量子探险AI漫剧…...
毕业论文答辩利器:AI驱动的10款高效工具及模板深度评测
工具对比速览表 工具名称 核心功能 适用场景 特色优势 Aibiye 智能成文、文献查找、数据分析 社科/金融/理工类论文 融合多模型架构,精准把握高校规范 Aicheck 初稿生成、大纲定制、图表插入 快速完成初稿需求 全学科覆盖,20-30分钟极速生成 …...
利用drawio高效绘制数据库ER图:从入门到精通
1. 为什么选择drawio绘制数据库ER图 第一次接触数据库设计时,我被各种专业工具的价格和复杂度吓退了。直到发现drawio这个宝藏工具,才真正体会到什么叫"用最简单的工具做专业的事"。作为一款完全免费的跨平台工具,drawio不仅支持网…...
深入解析build.prop:从基础参数到高级定制指南
1. build.prop文件到底是什么? 第一次在Android系统目录里看到build.prop这个文件时,我也是一头雾水。这玩意儿看起来就像个普通的文本文件,但里面密密麻麻的参数却让人望而生畏。后来才发现,它其实是Android系统的"身份证&q…...
计算机毕业设计:Python城市地铁客流与票务可视化分析平台 Django框架 数据分析 可视化 大数据 机器学习 深度学习(建议收藏)✅
博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ > 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与…...
LLM之Agent(三十七)|AI Agents(六):从Workflow到Agent的架构演进与选型指南
1. 从Workflow到Agent的技术演进路径 十年前我刚接触自动化系统时,所有流程都是硬编码的if-else逻辑。如今AI技术的爆发式发展,让系统架构经历了三次重要迭代: 第一代规则引擎就像铁路轨道,每个岔路口都需要人工预设判断条件。我参…...
python tarfile
# Python tarfile模块:不止是打包与解包 在Python的标准库中,tarfile模块常常被开发者们忽视,或者仅仅被当作一个简单的压缩工具来使用。实际上,这个模块的功能远比表面看起来要丰富得多,它处理的是tar格式的归档文件…...






























