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

相关推荐
天疆说1 小时前
01 硬件选型与 llama.cpp 部署:4× RTX 5880 Ada 跑 DeepSeek-V4-Flash
java·redis·llama
嘟嘟07172 小时前
Next.js 博客左侧笔记列表是怎么从 Redis 渲染出来的?从组件、children 到动态路由一次讲清
redis·react.js·前端工程化
Rain的Java大神之路4 小时前
线上接口负载满了如何解决
java·数据库·redis·后端·缓存·面试·架构
Amir_zy6 小时前
Redis测试方法全攻略:冒烟、压测与稳定性验证
redis·压力测试
霸道流氓气质8 小时前
RedLock:Redis 分布式锁的高可用方案
数据库·redis·分布式
breeze jiang9 小时前
Next.js App Router 父子组件 RSC 拆分实战:从 Redis Hash 到客户端交互的最小化边界
javascript·redis·哈希算法
晚染烟19 小时前
每日八股day17
redis
xqqxqxxq1 天前
Redis 五大常用数据类型 + 通用命令笔记
数据库·redis·笔记
LCG元1 天前
ESP32-IDF 远程固件升级实战:HTTPS OTA + 双分区切换 + 自动回滚
数据库·redis·https
MC皮蛋侠客1 天前
Redis 系列(十一):高可用(二)——Redis Cluster 集群
数据库·redis·bootstrap