Redis主要数据类型—官方原版

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Redis主要数据类型—官方原版

Redis 是一个数据结构服务器。 Redis 的核心是提供一系列本机数据类型,可帮助您解决从缓存队列再到事件处理的各种问题

Redis主要数据类型:String(字符串),Lists(列表),Sets(集合),Hashes(哈希),Sorted sets(有序集合),Streams(流),Bitmaps,Geospatial indexes,Bitfields,HyperLogLog,Extensions。

一、String(字符串)

Redis 字符串存储字节序列,包括文本、序列化对象和二进制数组。 因此,字符串是最基本的 Redis 数据类型。 它们通常用于缓存,但它们支持其他功能,这些功能也允许您实现计数器并执行按位运算。

限制

默认情况下,单个 Redis 字符串的最大大小为 512 MB。

基本命令

  • SET 存储字符串值。
  • 仅当字符串值尚不存在时,SETNX 才会存储该值。对于实现锁很有用。
  • GET 检索字符串值。
  • MGET 在单个操作中检索多个字符串值。

二、Lists(列表)

Redis 列表是字符串值的链接列表。 Redis 列表经常用于:

  • 实现堆栈和队列。
  • 为后台工作程序系统构建队列管理。

限制

Redis 列表的最大长度为 2^32 - 1 (4,294,967,295) 个元素。

基本命令

  • LPUSH 在列表的头部添加一个新元素;RPUSH添加到尾部。
  • LPOP 从列表的头部删除并返回一个元素;RPOP 执行相同的操作,但从列表的尾部。
  • LLEN 返回列表的长度。
  • LMOVE 以原子方式将元素从一个列表移动到另一个列表。
  • LTRIM 将列表缩减到指定的元素范围。

阻止命令

列表支持多个阻止命令。 例如:

  • BLPOP 从列表的头部删除并返回一个元素。 如果列表为空,则该命令将一直阻止,直到元素可用或达到指定的超时。
  • BLMOVE 以原子方式将元素从源列表移动到目标列表。 如果源列表为空,则该命令将阻塞,直到新元素可用。

三、Sets(集合)

Redis 集是唯一字符串(成员)的无序集合。 您可以使用 Redis 集有效地:

  • 跟踪唯一项目(例如,跟踪访问给定博客文章的所有唯一 IP 地址)。
  • 表示关系(例如,具有给定角色的所有用户的集合)。
  • 执行常见的集合操作,例如交集、并集和差分。

限制

Redis 集的最大大小为 2^32 - 1 (4,294,967,295) 个成员。

基本命令

• SADD 将新成员添加到集合中。

• SREM从集合中删除指定的成员。

• SISMEMBER测试字符串的集合成员资格。

• SINTER 返回两个或多个集合共有的成员集(即交集)。

• SCARD 返回集合的大小(也称为基数)

例子

  • 存储用户 123 和 456 的收藏书籍 ID 集:
> SADD user:123:favorites 347
(integer) 1
> SADD user:123:favorites 561
(integer) 1
> SADD user:123:favorites 742
(integer) 1
> SADD user:456:favorites 561
(integer) 1

四、Redis hashes

Redis 哈希是结构化为字段值对集合的记录类型。 您可以使用哈希来表示基本对象和存储计数器分组等。

基本命令

  • HSET 在哈希上设置一个或多个字段的值。
  • HGET 返回给定字段的值。
  • HMGET 返回一个或多个给定字段的值。
  • HINCRBY 将给定字段的值按提供的整数递增。

限制

每个哈希最多可以存储 4,294,967,295 (2^32 - 1) 字段值对。 实际上,哈希仅受托管 Redis 部署的 VM 上的总体内存限制

五、Redis sorted sets

Redis 排序集是按关联分数排序的唯一字符串(成员)的集合。 当多个字符串具有相同的分数时,字符串将按字典顺序排序。 排序集的一些用例包括:

  • 排行榜。例如,您可以使用排序集轻松维护大型在线游戏中最高分的有序列表。
  • 速率限制器。特别是,您可以使用排序集来构建滑动窗口速率限制器,以防止过多的 API 请求。

基本命令

  • ZADD 将新成员和关联的分数添加到排序集。如果成员已存在,则会更新分数。
  • ZRANGE 返回在给定范围内排序的排序集的成员。
  • ZRANK 返回所提供成员的排名,假设排序是按升序排列的。
  • ZREVRANK 返回所提供成员的秩,假设排序集按降序排列。

六、Redis Streams

Redis 流是一种数据结构,其作用类似于仅追加日志。 您可以使用流实时记录和同时联合事件。 Redis 流用例的示例包括:

  • 事件源(例如,跟踪用户操作、点击等)
  • 传感器监测(例如,现场设备的读数)
  • 通知(例如,在单独的流中存储每个用户的通知记录)

Redis 为每个流条目生成一个唯一的 ID。 您可以在以后使用这些 ID 检索其关联的条目,或读取和处理流中的所有后续条目。

Redis 流支持多种修剪策略(以防止流无限增长)和多个消费策略

基本命令

  • XADD 向流添加新条目。
  • XREAD读取一个或多个条目,从给定位置开始并及时向前移动。
  • XRANGE 返回两个提供的条目 ID 之间的条目范围。
  • XLEN 返回流的长度。

七、geospatial(Redis地理空间)

Redis 地理空间索引允许您存储坐标并搜索它们。 此数据结构可用于查找给定半径或边界框内的邻近点。

基本命令

  • GEOADD 将位置添加到给定的地理空间索引(请注意,使用此命令,经度位于纬度之前)。
  • GEOSEARCH 返回具有给定半径或边界框的位置。

八、HyperLogLog(Redis超级日志)

HyperLogLog 是一种估计集合基数的数据结构。作为一种概率数据结构,HyperLogLog 以完美的精度换取高效的空间利用率。

Redis HyperLogLog 实现最多使用 12 KB,并提供 0.81% 的标准误差

基本命令

  • PFADD 将项目添加到 HyperLogLog。
  • PFCOUNT 返回集合中项数的估计值。
  • PFMERGE将两个或多个HyperLogLogs合并为一个。

限制

HyperLogLog 可以估计最多具有 18,446,744,073,709,551,616 (2^64) 个成员的集合的基数。

九、bitmaps(位图)

Redis 位图是字符串数据类型的扩展,可让您将字符串视为位向量。 还可以对一个或多个字符串执行按位运算。 位图用例的一些示例包括:

  • 集合成员对应于整数 0-N 的情况的有效集合表示形式。
  • 对象权限,其中每个位表示一个特定权限,类似于文件系统存储权限的方式。

基本命令

  • SETBIT 将提供的偏移量处的位设置为 0 或 1。
  • GETBIT 返回给定偏移量的位值。
  • BITOP 允许您对一个或多个字符串执行按位运算。

十、bitfields(位字段)

Redis位字段允许您设置、递增和获取任意位长度的整数值。例如,可以对从无符号1位整数到有符号63位整数的任何对象进行操作。

这些值使用二进制编码的Redis字符串存储。位字段支持原子读取、写入和增量操作,使其成为管理计数器和类似数值的好选择。

基本命令

  • BITFIELD自动设置、递增和读取一个或多个值。
  • BITFIELD_RO是BITFIELD的只读变体。



文章下方有交流学习区!一起学习进步!也可以前往官网,加入官方微信交流群!!!你的支持和鼓励是我创作的动力❗❗❗

Doker的成长,欢迎大家一起陪伴!!!

官网:Doker 多克; 官方旗舰店首页-Doker 多克 多克创新科技企业店-淘宝网全品优惠

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
11天前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
29 1
|
1月前
|
存储 消息中间件 NoSQL
Redis 数据类型
10月更文挑战第15天
37 1
|
2月前
|
存储 消息中间件 缓存
深入探析Redis常见数据类型及应用场景
深入探析Redis常见数据类型及应用场景
54 2
|
3月前
|
NoSQL 安全 Java
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
这篇文章深入探讨了Redis中的String数据类型,包括键操作的命令、String类型的命令使用,以及String在Redis中的内部数据结构实现。
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
|
3月前
|
NoSQL Java Redis
Redis5种数据类型
这篇文章介绍了Redis的五种数据类型:字符串、列表、集合、有序集合和哈希,并通过代码示例展示了如何在Spring框架中使用RedisTemplate操作这些数据类型。
Redis5种数据类型
|
3月前
|
存储 NoSQL Java
深入理解Redis数据类型Hashes原理
本文深入分析了Redis中的hashes数据类型,这是一种用于存储行记录的数据结构,允许一个key下存储多条记录。
深入理解Redis数据类型Hashes原理
|
3月前
|
存储 NoSQL 算法
深入理解Redis数据类型Zset原理
本文深入探讨了Redis中的Zset(有序集合)数据类型,它是一种可以存储排序功能的集合,其中每个元素都具有一个浮点型的score属性,用于根据score进行排序。
深入理解Redis数据类型Zset原理
|
3月前
|
存储 NoSQL 算法
Redis6入门到实战------ 三、常用五大数据类型(列表(List)、集合(Set)、哈希(Hash)、Zset(sorted set))
这是关于Redis 6入门到实战的文章,具体内容涉及Redis的五大数据类型:列表(List)、集合(Set)、哈希(Hash)、有序集合(Zset(sorted set))。文章详细介绍了这些数据类型的特点、常用命令以及它们背后的数据结构。如果您有任何关于Redis的具体问题或需要进一步的帮助,请随时告诉我。
|
3月前
|
消息中间件 存储 NoSQL
redis实战——go-redis的使用与redis基础数据类型的使用场景(一)
本文档介绍了如何使用 Go 语言中的 `go-redis` 库操作 Redis 数据库
181 0
redis实战——go-redis的使用与redis基础数据类型的使用场景(一)
|
3月前
|
存储 缓存 NoSQL
深入理解Redis数据类型String原理
本文深入探讨了Redis中String数据类型的实现原理和使用场景,基于Redis 5.0版本进行分析。
深入理解Redis数据类型String原理