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

相关推荐
顺风尿一寸5 分钟前
Redis List 阻塞队列底层探秘:LPUSH 如何唤醒沉睡的 BRPOP
redis
向日的葵0062 小时前
Redis会话机制vsJWT机制深度解析
数据库·redis·python·缓存·系统架构·jwt
小龙报3 小时前
【优选算法】1. 水果成蓝 2.找到字符串中所有字母的异位词
java·c语言·数据结构·数据库·c++·redis·算法
三言老师4 小时前
CentOS7.9:Redis 数据持久化结构化实战教程
数据库·redis·缓存
亿牛云爬虫专家5 小时前
如何设计一套高可用的爬虫任务队列,保证断点续爬与故障转移?
redis·爬虫·故障转移·任务队列·代理ip·requests·隧道代理
YOU OU14 小时前
Redis基础常识与命令
数据库·redis·缓存
吳所畏惧19 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
赵丙双19 小时前
Redis 概率相关的数据类型
redis
Y3815326621 天前
SERP API + Redis 缓存层:4 种方案对比与选型
数据库·redis·缓存
海兰1 天前
【高速缓存】RedisVL 高级查询(全文搜索、混合搜索和 多向量搜索)
数据库·人工智能·redis·缓存