返回
Redis 基础与数据结构
百科(权威知识源 · 考试范围)
作者:管理员最后更新:2026/9/4 12:42:17审核:管理员

Redis 基础与数据结构

Redis(Remote Dictionary Server)是高性能的内存数据库,常用于缓存、消息队列、分布式锁、排行榜等。它将数据保存在内存中,读写速度极快。

Redis 为什么快

Redis 采用**单线程 + 事件驱动(IO 多路复用)**处理命令:

  • 命令执行原子、无锁竞争。
  • 基于 epoll 等多路复用,高效处理大量并发连接。

数据操作直接操作内存,避免磁盘随机 IO(持久化是异步/后台)。

五种核心数据结构

Redis 提供 5 种核心数据类型(从「外观」看):

1. 字符串 String

最广泛使用的类型,是 SET/GET 等命令的操作对象;数据库的所有 key 也用它保存。可用于计数器、缓存值。底层用 SOS(SDS 简单动态字符串)保存。

SET key value
GET key
INCR counter

2. 哈希 Hash

HSET/HLEN 等命令的操作对象,适合存一个对象的多个字段(类似 Map)。

HSET user name 张三 age 18
HGET user name

3. 列表 List

LPUSH/LRANGE 等命令的操作对象,有序、可重复,可用作队列、栈、消息流。

LPUSH list a b c
LRANGE list 0 -1

4. 集合 Set

SADD/SRANDMEMBER 等命令的操作对象,无序、去重,基于哈希表实现(增删查都是 O(1)),支持交集/并集/差集(如共同好友)。

SADD tags java python
SINTER tags other

5. 有序集合 ZSet

ZADD/ZCOUNT 等命令的操作对象。每个元素关联一个 score(分数),Redis 通过分数对成员从小到大排序;成员唯一但分数可重复。适合排行榜、延迟队列。

ZADD leader 100 a 90 b
ZRANGE leader 0 -1 WITHSCORES

编码方式(实现层面)

不同数据规模会自适应使用不同编码(如 List、Hash 用 ziplist/quicklist、Set 用 intset、ZSet 用 skiplist)以节省内存与提升性能。

总结

  • Redis 内存数据库,单线程 + IO 多路复用,高性能。
  • 五大结构:String / Hash / List / Set / ZSet,各有适用场景。
  • 选对数据结构是高效使用 Redis 的关键。
考试信息
通过标准满分(错一道即与满分无缘,可把整卷答完看解析;重考不限次数)
时间限制不限时
单卷抽题数10 题
成绩窗口2026-09-14 ~ 2026-09-20
积分学费10 积分
支付方式满分后用积分支付(自主决定)
用积分支付:成绩长期保留,参与排名,积分学费含平台资助池;不支付:成绩保留至窗口截止后清空
积分无充值通道;积分不足 10 时,平台自动发放 100 积分。积分不可提现、不可转让、无现金价值。
排行榜(窗口期最短满分用时 · 前 0 名)
当前窗口(2026-09-14 ~ 2026-09-20)

该窗口暂无满分记录

课程(免费学习 · 共 0 门)

暂无课程

登录后可查看我的出题、测试记录并参加满分考试