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

相关推荐
vivo互联网技术2 天前
从 10 分钟到 1 秒:ES 深度分页任意跳页的三轮优化实战
服务器·数据库·redis·elasticsearch·深度分页
用户3074596982075 天前
Redis 延时队列详解
redis
烤代码的吐司君5 天前
Redis 数据结构 ZSet, BIT, HyperLogLog,Geo 空间数据
redis·后端
leeyi7 天前
Checkpoint 机制:Agent 怎么在断电后接着跑
redis·aigc·agent
云技纵横8 天前
一个 @Async 让循环依赖暴雷:Spring 代理的暗坑
redis
犯困蛋挞yy9 天前
用Claude快速解决Redis代码报错反复无解的问题
redis
用户31693538118315 天前
Java连接Redis
redis
小小工匠17 天前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
taocarts_bidfans17 天前
反向海淘跨境缓存架构优化:taocarts Redis分层缓存实战技术
redis·缓存·架构·反向海淘·taocarts