Redis 数据类型和命令大全(redis的五种数据类型命令)
yuyutoo 2025-03-13 21:50 37 浏览 0 评论
Redis 是一种速度非常快的非关系型数据库解决方案。其简单的键值数据模型使 Redis 能够处理大型数据集,同时保持令人印象深刻的读写速度和可用性。Redis 允许您使用各种数据类型(例如列表、哈希、集合和排序集合)来存储和管理数据。
在本教程中,了解Redis 数据类型的工作原理并掌握每种数据类型的基本命令。
Redis 数据类型
键值数据库通过一个唯一的键对应数据对象的数据。使用该键来管理和检索分配给该特定键的值。任何大小不超过 512 MB 的二进制序列都可以用作 Redis 键,然后与简单的字符串或其他抽象数据结构相关联。
Redis 键通过使用七种不同数据类型之一映射到值:
- 字符串
- 列表
- 哈希值
- 集合
- 排序集合
- 基数统计
- 位图 (BitStrings)
字符串
字符串表示可以附加到键的最小值。字符串值的最大允许大小为 512 MB,包含任何字符序列。在Redis中,键值对的键部分也是一个字符串。
使用这种数据结构的数据库通常被称为字符串到字符串键值存储。
由于所有数据都在一个对象中,Redis 中的字符串操作非常快。基本的 Redis 命令,如SET、GET和DEL允许您对字符串值执行基本操作。
- SET key value – 设置指定键的值。
- GET key – 检索指定键的值。
- DEL key – 删除给定键的值。
以下示例说明了如何在redis-cli交互式 shell 中使用这些简单的命令。该SET命令将值添加到键,同时该GET命令获取并显示该值。如果没有值映射到键,则GET命令的输出为(nil)。
如果存在某个值,则该DEL命令的输出将显示要删除的项目数。添加新的键和值不会影响数据库性能或处理速度。
用例:字符串主要用于缓存 HTML 元素、小部件,甚至整个网页。会话和用户特定数据存储在内存中,以加快和增强网站浏览体验。Redis 字符串还可以促进资源分配,作为对消息传递或流量平衡应用程序的补充。
列表
Redis 允许您将有序的字符串序列与键相关联。这个字符串链表允许您执行一组操作,例如:
- LPUSH – 将值推送到列表的左端。
- RPUSH – 将值推送到列表的尾端。
- LRANGE – 检索一系列项目。
- LPOP/RPOP – 用于显示和移除两端的项目。
- LINDEX – 从列表中的特定位置获取值。
使用LPUSH/RPUSH命令向列表添加值时,输出提供当前项目数。然后,您可以使用以下LRANGE命令获取整个列表,以0作为开始并-1表示最后一个索引项。
使用LINDEX命令从链接列表中检索特定值或使用命令删除项目LPOP/RPOP。
向链表添加值是一种有效的操作,无论其大小如何都不会影响写入速度。但是,从链表中读取数据可能取决于键值对值侧的字符串数量。
用例:链表提供的可能性使其成为存储实时数据更新例,如社交媒体帖子或日志的理想数据类型。
哈希值
Redis 哈希存储键值对的无序映射。散列键与值相关联。该值是一个包含其他键值对的 Redis 字符串。您不能使用其他复杂的数据结构,例如 Sets、Lists 或其他 Hashes 作为值。
基本哈希命令允许您独立访问和更改单个或多个字段。
- HSET – 将值映射到散列中的键。
- HGET – 检索与散列中的键关联的单个值。
- HGETALL – 显示整个哈希内容。
- HDEL – 从散列中删除现有的键值对。
每次使用HSET命令将项目添加到散列时,返回值会(integer) n通知您条目是否已存在以及实例数。使用该HDEL命令时会提供相同的信息。
用例:哈希可以非常有效地存储数百万甚至数十亿个对象。可用字段的数量使得哈希对于维护大量单个对象,例如用户数据非常有用。
集合
Redis 集是唯一字符串的无序集合。由于集合没有排序,您不能像列表一样从索引的前端或末尾删除项目。但是,字符串是唯一的,并且同一项目的多个实例不可能出现在一个集合中。
使用以下命令添加、删除、检索和检查集合中的单个项目:
- SADD – 将一个或多个项目添加到一个集合中。
- SISMEMBER – 找出一个项目是否是一个集合的一部分。
- SMEMBERS – 从集合中检索所有项目。
- SREM – 从集合中删除现有项目。
将同一项目多次添加到一个集合中总是会产生一个副本。因此,您不需要使用SMEMBERSorSISMEMBER命令来确定项目是否已经是集合的成员。
使用该SADD命令确保集合中没有重复的条目。
用例: Redis 集非常适合跟踪独一无二的事件,例如独特的页面浏览量或单个 IP。集合还支持高级操作,例如并集、交集和差操作。
排序集合
排序集或ZSET是 Redis 中最高级的数据类型之一。
排序集键值对的值部分由称为成员的唯一字符串元素(键)和称为分数的项目(值)组成。排序集将每个元素映射到一个浮点值 ( score ) 并使用该值以特定顺序对元素进行排序。
您可以按成员、排序顺序和分数值访问排序集中的项目。基本命令允许您根据成员值和分数范围获取、添加、删除单个值或检索项目。
- ZADD – 将具有分数的成员添加到排序集中。
- ZRANGE – 根据项目在排序顺序中的位置检索项目。该withscores 选项产生实际的分数值。
- ZRANGEBYSCORE– 根据定义的分数范围从排序集中获取项目。该withscores 选项产生实际的分数值。
- ZREM–从排序集中删除项目。
只有成员分数对的成员值被视为唯一的。如果您将两个不同的分数与同一个成员值相关联,则排序集中只会出现最新添加的分数。如果两个不同的成员具有相同的分数, Redis 会按字母数字顺序对值进行排序。
用例:单个排序集可以使用ZRANGE或ZREVRANGERedis 命令跟踪并提供在线比赛中玩家分数的有序排行榜。
基数统计
HyperLogLogs 提供集合中唯一项目的估计计数。与其他解决方案相反,HyperLogLogs 中的项目不会被单独计算,因为这需要跟踪之前的项目以避免对相同元素进行两次计数。此类操作需要的内存量等于用于存储数据的内存量。
HyperLogLog 结构使用更有效的概率算法来估计集合的大小,而不是计算每个项目。估计的错误率低于 1%。
HyperLogLog 命令允许您添加项目、检索唯一项目的估计计数以及创建多个 HyperLogLog 的联合。
- PFADD – 向 HyperLogLog 添加一个或多个元素。
- PFCOUNT – 从单个 HyperLogLog 中获取估计的唯一项目数。
- PFMERGE – 将不同的 HyperLogLog 合并为一个 HyperLogLog。
结果的准确性可能因集合的大小而异。但是,如果您不需要精确的项目计数,则此概率结构允许您仅使用原本需要的内存的一小部分。
用例:使用 HyperLogLogs 来聚合和计算唯一的用户交互或查询。
位图
Redis 字符串是一个二进制序列,最大大小为 512 兆字节。位图允许您使用适当的命令在位级别上操作字符串。
- SETBIT – 基于 0 或 1 值定义或清除该位。
- GETBIT – 检索由键指定的字符串值的位值。
- BITOP – 在字符串之间执行按位运算。
- BITPOS – 找到字符串中设置为 1 或 0 的第一位。
- BITCOUNT – 计算字符串中设置为 1 的位数。
能够操作字符串的位提供了特殊的节省空间的机会。它还提供了一种直接访问和处理数据基本元素的方法。
用例:对位进行操作简化了实时分析、人口计数器和跟踪用户活动。位图经常用于存储可以表示为连续键之间的布尔值是/否分隔的数据。
全面了解 Redis 数据类型以及与每个数据结构相关的基本命令。为在应用程序中设计合适的存储解决方案提供了灵活性。
喜欢的朋友记得给关注~
相关推荐
- 《保卫萝卜2》安卓版大更新 壕礼助阵世界杯
-
《保卫萝卜2:极地冒险》本周不仅迎来了安卓版本的重大更新,同时将于7月4日本周五,带来“保卫萝卜2”安卓版本世界杯主题活动的火热开启,游戏更新与活动两不误。一定有玩家会问,激萌塔防到底进行了哪些更新?...
- 儿童手工折纸:胡萝卜,和孩子一起边玩边学carrot
-
1、准备两张正方形纸,一橙一绿,对折出折痕。2、橙色沿其中一条对角线如图折两三角形。3、把上面三角折平,如图。4、绿色纸折成三角形。5、再折成更小的三角形。6、再折三分之一如图。7、打开折纸,压平中间...
- 《饥荒》食物代码有哪些(饥荒最新版代码总汇食物篇)
-
饥荒游戏中,玩家们需要获取各种素材与食物,进行生存。玩家们在游戏中,进入游戏后按“~”键调出控制台使用代码,可以直接获得素材。比如胡萝卜的代码是carrot,玉米的代码是corn,南瓜的代码是pump...
- Skyscanner:帮你找到最便宜机票 订票不求人
-
你喜欢旅行吗?在合适的时间、合适的目的地,来一场说走就走的旅行?机票就是关键!Skyscanner这款免费的手机应用,在几秒钟内比较全球600多家航空公司的航班安排、价格和时刻表,帮你节省金钱和时间。...
- 小猪佩奇第二季50(小猪佩奇第二季英文版免费观看)
-
Sleepover过夜Itisnighttime.现在是晚上。...
- 我在民政局工作的那些事儿(二)(我在民政局上班)
-
时间到了1997年的秋天,经过一年多的学习和实践,我在处理结婚和离婚的事情更加的娴熟,也获得了领导的器重,所以我在处理平时的工作时也能得心应手。这一天我正在离婚处和同事闲聊,因为离婚处几天也遇不到人,...
- 夏天来了就你还没瘦?教你不节食13天瘦10斤的哥本哈根减肥法……
-
好看的人都关注江苏气象啦夏天很快就要来了你是否和苏苏一样身上的肉肉还没做好准备?真是一个悲伤的故事……下面这个哥本哈根减肥法苏苏的同事亲测有效不节食不运动不反弹大家快来一起试试看吧~DAY1...
- Pursuing global modernization for peaceful development, mutually beneficial cooperation, prosperity for all
-
AlocalworkeroperatesequipmentintheChina-EgyptTEDASuezEconomicandTradeCooperationZonei...
- Centuries-old tea road regains glory as Belt and Road cooperation deepens
-
FUZHOU/ST.PETERSBURG,Oct.2(Xinhua)--NestledinthepicturesqueWuyiMountainsinsoutheastChi...
- Ftrace function graph简介(flat function)
-
引言由于android开发的需要与systrace的普及,现在大家在进行性能与功耗分析时候,经常会用到systrace跟pefetto.而systrace就是基于内核的eventtracing来实...
- JAVA历史版本(java各版本)
-
JAVA发展1.1996年1月23日JDK1.0Java虚拟机SunClassicVM,Applet,AWT2.1997年2月19日JDK1.1JAR文件格式,JDBC,JavaBea...
- java 进化史1(java的进阶之路)
-
java从1996年1月第一个版本诞生,到2022年3月最新的java18,已经经历了27年,整整18个大的版本。很久之前有人就说java要被淘汰,但是java活到现在依然坚挺,不知道java还能活...
- 学习java第二天(java学完后能做什么)
-
#java知识#...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 《保卫萝卜2》安卓版大更新 壕礼助阵世界杯
- 儿童手工折纸:胡萝卜,和孩子一起边玩边学carrot
- 《饥荒》食物代码有哪些(饥荒最新版代码总汇食物篇)
- Skyscanner:帮你找到最便宜机票 订票不求人
- 小猪佩奇第二季50(小猪佩奇第二季英文版免费观看)
- 我在民政局工作的那些事儿(二)(我在民政局上班)
- 夏天来了就你还没瘦?教你不节食13天瘦10斤的哥本哈根减肥法……
- Pursuing global modernization for peaceful development, mutually beneficial cooperation, prosperity for all
- Centuries-old tea road regains glory as Belt and Road cooperation deepens
- 15 THE NUTCRACKERS OF NUTCRACKER LODGE (CONTINUED)胡桃夹子小屋里的胡桃夹子(续篇)
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)