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

相关推荐
IT大白鼠3 天前
Redis 系列 · 第 01 篇——认知入门:Redis 是什么
redis·nosql
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
lbb 小魔仙3 天前
OpenClaw + cpolar 实战:远程 NAS、分享小游戏、RDP,再配置公网 AI 入口
数据库·人工智能·redis·oracle·prometheus
夕除3 天前
redis--018
redis
两锭子3 天前
Redis基础
redis
烟沙九洲3 天前
Redis 缓存穿透、缓存击穿、缓存雪崩
数据库·redis
字节探索3 天前
Redis 只会当缓存用?这 10 大实战场景,让你的系统快到飞起
redis·后端
于樱花森上飞舞3 天前
【Redis】哨兵详解
java·开发语言·数据库·redis
Rain的Java大神之路3 天前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
Wang's Blog3 天前
Java 接入Redis: 通用命令与键管理
java·服务器·redis