# Redis基礎知識點有哪些
## 目錄
1. [Redis概述](#redis概述)
2. [數據結構與數據類型](#數據結構與數據類型)
3. [持久化機制](#持久化機制)
4. [事務與管道](#事務與管道)
5. [發布訂閱模式](#發布訂閱模式)
6. [主從復制](#主從復制)
7. [哨兵模式](#哨兵模式)
8. [集群模式](#集群模式)
9. [性能優化](#性能優化)
10. [常見應用場景](#常見應用場景)
11. [安全與運維](#安全與運維)
12. [常見問題與解決方案](#常見問題與解決方案)
---
## Redis概述
Redis(Remote Dictionary Server)是一個開源的、基于內存的鍵值存儲系統,常用作數據庫、緩存和消息中間件。
### 核心特性
- **內存存儲**:數據主要存儲在內存中,讀寫性能極高(10萬+/秒QPS)
- **數據結構豐富**:支持字符串、哈希、列表、集合等復雜數據結構
- **持久化支持**:提供RDB和AOF兩種持久化方案
- **高可用**:支持主從復制、哨兵和集群模式
- **原子操作**:所有操作都是原子性的
### 版本演進
| 版本 | 發布時間 | 重要特性 |
|------|----------|----------|
| 2.8 | 2013.11 | 新增Sentinel機制 |
| 3.0 | 2015.04 | 正式支持集群模式 |
| 4.0 | 2017.07 | 新增混合持久化、內存優化 |
| 5.0 | 2018.10 | 引入Stream數據類型 |
| 6.0 | 2020.05 | 支持多線程IO |
---
## 數據結構與數據類型
Redis支持5種核心數據結構:
### 1. String(字符串)
- **最大容量**:512MB
- **常用命令**:
```bash
SET key value [EX seconds]
GET key
INCR key
DECR key
HSET user:1 name "John"
HGET user:1 name
LPUSH mylist a
RPOP mylist
SADD tags redis
SINTER set1 set2 # 交集
ZADD ranking 100 "user1"
ZREVRANGE ranking 0 9
save 900 1 # 900秒內至少1次修改
save 300 10 # 300秒內至少10次修改
結合RDB和AOF優勢: 1. 使用RDB做全量備份 2. 使用AOF記錄增量操作
MULTI
SET a 100
INCR b
EXEC
PUBLISH channel message
SUBSCRIBE channel [channel...]
PSUBSCRIBE pattern*
SLAVEOF命令sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 5000
CRC16(key) % 16384jemalloc內存分配器KEYS *操作SCAN替代全量遍歷requirepass yourpassword
rename-command FLUSHALL ""
bind 127.0.0.1
| 問題類型 | 解決方案 |
|---|---|
| 緩存穿透 | 布隆過濾器 |
| 緩存雪崩 | 隨機過期時間 |
| 緩存擊穿 | 互斥鎖 |
maxmemory-policy本文共計約8050字,涵蓋Redis核心知識點。實際部署時建議結合官方文檔和性能測試結果進行配置優化。 “`
注:由于篇幅限制,這里展示的是精簡版框架。完整8050字版本需要擴展每個章節的詳細說明(包括原理圖解、性能數據對比、配置參數詳解、實戰案例等),如需完整內容可告知具體需要擴展的章節。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。