# Redis面試中常被問到的重點有哪些
Redis作為高性能的鍵值存儲系統,在面試中經常被深入考察。以下是Redis面試中的核心知識點整理,涵蓋基礎概念、數據結構、持久化機制、高可用方案等關鍵內容。
---
## 一、Redis基礎概念
### 1. Redis是什么?
- **內存數據庫**:數據主要存儲在內存中,讀寫性能極高(10萬+ QPS)
- **鍵值存儲**:支持多種數據結構(String/Hash/List/Set/ZSet等)
- **單線程模型**:基于Reactor模式的事件驅動架構(6.0后支持多線程IO)
### 2. Redis vs Memcached
| 特性 | Redis | Memcached |
|---------------|--------------------------------|------------------------|
| 數據類型 | 5種核心+擴展類型 | 僅字符串 |
| 持久化 | 支持RDB/AOF | 不支持 |
| 集群模式 | Redis Cluster/Codis | 需客戶端分片 |
| 線程模型 | 單線程(IO多線程可選) | 多線程 |
---
## 二、核心數據結構與使用場景
### 1. String(字符串)
- **底層實現**:SDS(Simple Dynamic String)
- **典型場景**:
- 緩存(用戶會話、頁面緩存)
- 計數器(`INCR article:readcount:1001`)
- 分布式鎖(`SETNX lock:order 1 EX 30`)
### 2. Hash(哈希表)
- **底層結構**:ziplist(元素少時)/ hashtable
- **使用示例**:
```bash
HSET user:1001 name "張三" age 28
HGETALL user:1001
SINTER user:1001:friends user:1002:friends
)SRANDMEMBER lottery:users 3
)ZADD leaderboard 95 "player1"
)SAVE
/BGSAVE
save 900 1
)appendfsync always
(每次寫操作)appendfsync everysec
(默認,每秒)appendfsync no
(由系統決定)BGREWRITEAOF
壓縮日志文件SLAVEOF 127.0.0.1 6379
CLUSTER ADDSLOTS
分配槽位volatile-lru
:從已設置過期時間的鍵中淘汰最近最少使用的allkeys-lru
:從所有鍵中淘汰LRUSCAN
替代KEYS
# Python示例
pipe = r.pipeline()
for i in range(1000):
pipe.set(f"key:{i}", i)
pipe.execute()
slowlog-log-slower-than 10
slowlog-max-len 128
SLOWLOG GET 5
MULTI
SET book:1 "Redis實戰"
INCR sales:count
EXEC
-- 限流腳本
local key = KEYS[1]
local limit = tonumber(ARGV[1])
local current = tonumber(redis.call('GET', key) or 0
if current + 1 > limit then
return 0
else
redis.call('INCR', key)
return 1
end
BF.ADD
)SET null 60
)EXPIRE key 3600 + rand(600)
)SETNX lock:key 1
)used_memory
)keyspace_hits/(keyspace_hits+keyspace_misses)
)connected_clients
)requirepass
)rename-command FLUSHALL ""
rename-command CONFIG ""
Redis為什么快?
如何實現分布式鎖?
SETNX + EXPIRE
(Redlock算法)BigKey如何處理?
HSCAN
分批刪除)UNLINK
)集群數據如何遷移?
MIGRATE
命令掌握以上知識點后,建議通過以下方式深化理解:
1. 動手搭建Redis集群環境
2. 使用redis-benchmark
進行壓測
3. 閱讀Redis核心源碼(如dict.c/ae.c)
“`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。