Redis 5 种基础数据结构?

Redis是一个开源的内存数据结构存储系统,广泛应用于缓存、消息队列和实时数据分析等场景。它支持五种基础数据结构:字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。以下是对这五种基础数据结构的详细介绍。

一、字符串(String)

字符串是Redis中最简单的数据结构,类似于传统的键值对,键和值都是字符串类型。字符串类型的数据结构不仅可以存储文本数据,还可以存储二进制数据,例如图片或序列化对象。

1.1 基本命令
  • 设置键值 :SET key value
  • 获取键值 :GET key
  • 追加值 :APPEND key value
  • 增加数值 :INCR key
  • 获取字符串长度 :STRLEN key
1.2 示例
复制代码
SET mykey "Hello, Redis!"
GET mykey  # 返回 "Hello, Redis!"
INCR counter  # 如果counter不存在,初始化为0,然后加1,结果为1
​

二、哈希(Hash)

哈希是一个键值对集合,特别适合存储对象。哈希中的每个键(字段)和值都是字符串类型。

2.1 基本命令
  • 设置哈希字段值 :HSET key field value
  • 获取哈希字段值 :HGET key field
  • 删除哈希字段 :HDEL key field
  • 获取哈希所有字段值 :HGETALL key
  • 获取哈希所有字段 :HKEYS key
  • 获取哈希所有值 :HVALS key
2.2 示例
复制代码
HSET user:1000 name "Alice"
HSET user:1000 age 30
HGET user:1000 name  # 返回 "Alice"
HGETALL user:1000  # 返回所有字段和值
​

三、列表(List)

列表是一个有序的字符串集合,可以从两端推入和弹出元素。它可以用作消息队列和任务队列。

3.1 基本命令
  • 在列表头部插入 :LPUSH key value
  • 在列表尾部插入 :RPUSH key value
  • 从列表头部弹出 :LPOP key
  • 从列表尾部弹出 :RPOP key
  • 获取列表长度 :LLEN key
  • 获取列表中的一个范围的元素 :LRANGE key start stop
3.2 示例
复制代码
LPUSH mylist "World"
LPUSH mylist "Hello"
LRANGE mylist 0 -1  # 返回 ["Hello", "World"]
LPOP mylist  # 返回 "Hello"
​

四、集合(Set)

集合是一个无序的字符串集合,集合中的每个元素都是唯一的。集合支持集合操作,例如交集、并集和差集。

4.1 基本命令
  • 添加元素到集合 :SADD key value
  • 移除集合中的元素 :SREM key value
  • 检查元素是否在集合中 :SISMEMBER key value
  • 获取集合中的所有元素 :SMEMBERS key
  • 集合的交集 :SINTER key1 key2 ...
  • 集合的并集 :SUNION key1 key2 ...
  • 集合的差集 :SDIFF key1 key2 ...
4.2 示例
复制代码
SADD myset "apple"
SADD myset "banana"
SADD myset "cherry"
SMEMBERS myset  # 返回 ["apple", "banana", "cherry"]
SISMEMBER myset "banana"  # 返回 1
​

五、有序集合(Sorted Set)

有序集合类似于集合,但每个元素都会关联一个分数,用于排序。元素是唯一的,但分数可以重复。

5.1 基本命令
  • 添加元素到有序集合 :ZADD key score value
  • 获取有序集合中的元素数量 :ZCARD key
  • 获取有序集合中指定范围的元素 :ZRANGE key start stop
  • 按分数范围获取元素 :ZRANGEBYSCORE key min max
  • 获取元素的分数 :ZSCORE key value
  • 移除元素 :ZREM key value
5.2 示例
复制代码
ZADD myzset 1 "one"
ZADD myzset 2 "two"
ZADD myzset 3 "three"
ZRANGE myzset 0 -1  # 返回 ["one", "two", "three"]
ZRANGEBYSCORE myzset 1 2  # 返回 ["one", "two"]
ZSCORE myzset "two"  # 返回 2
​

六、总结

Redis的五种基础数据结构------字符串、哈希、列表、集合和有序集合------提供了丰富的功能来满足各种应用需求。

相关推荐
一条泥憨鱼16 小时前
【Redis | 黑马点评】短信登录功能 源码深度分析
java·redis·后端·session·黑马点评
m0_7520356317 小时前
Redis 数据结构总结
数据结构·数据库·redis
guo_wen_qiang19 小时前
redis持久化
数据库·redis·分布式
我命由我1234519 小时前
LRU 缓存淘汰策略
数据结构·redis·学习·mysql·算法·缓存·学习方法
十年Java程序媛19 小时前
Redis 分布式锁 + GZIP 压缩缓存踩坑|高并发缓存真实线上复盘
java·开发语言·spring boot·redis·分布式·缓存·面试
凤山老林19 小时前
Spring Boot 集成 Redis ZSet 实现实时排行榜、动态排名、同分加权与多维度榜单实战
spring boot·redis·后端
于眠牧北1 天前
Charles配置指定域名抓取和雷电模拟器中抓取APP接口配置
数据库·redis·缓存
夕除1 天前
redis--批次处理
redis
行百里er1 天前
Redis 完结篇——Redis 热点问题在 Spring Boot 项目中实战
redis·后端
凤山老林2 天前
Spring Boot 集成 Redis Stream 做可靠消息队列:持久化、消费组重组与流式处理实战
spring boot·redis·后端