Redis
| 中文名 | 遠程字典服務 |
|---|---|
| 英文名 | Remote Dictionary Server |
| 簡稱 | Redis |
| 開發語言 | ANSI C |
| 開發者 | Salvatore Sanfilippo(antirez) |
| 首次發布 | 2009年 |
| 許可證 | Redis Source Available License 或 伺服器端公眾授權條款雙重授權 |
| 官方網站 | redis.io |
| 最新版本 | 8.10.1 (2026年8月18日) |
Redis(全名:Remote Dictionary Server),即遠程字典服務,是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的鍵值對(Key-Value)數據庫,並提供多種語言的API。[1][2]Redis由意大利開發者Salvatore Sanfilippo(網名antirez)於2009年創建[2]。它常被稱為數據結構伺服器,因為其值(value)可以是字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等多種數據類型[3]。Redis在全球範圍內被廣泛使用,在眾多大型互聯網公司中承擔着緩存、消息隊列、實時數據處理等關鍵角色。[2]
Redis項目始於2009年,由意大利開發者Salvatore Sanfilippo為其初創公司的實時網絡日誌分析器尋求擴展性解決方案而創建,並於同年正式發布。最初,它被設計為一個簡單的鍵值存儲系統,因其卓越的性能和簡易性迅速獲得了開發者社區的關注。[2]
2010年3月15日起,Redis的開發工作由VMware主持。從2013年5月開始,Redis的開發由Pivotal贊助。[1]
在成長階段(2010—2013年),Redis逐漸增加了對多種數據類型的支持,並引入了發布/訂閱、事務處理等高級功能。成熟階段(2014—2017年),Redis開始支持集群、更高級的數據持久化選項以及Lua腳本等能力,從一個單機解決方案演變為可在分布式環境下運行的系統。擴展階段(2018年至今),Redis被擴展至雲服務和微服務架構中,實現了Redis Modules API等模塊化特性。[2]
Redis支持多種數據類型,主要包括:字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)與範圍查詢,以及位圖(bitmaps)、HyperLogLog、地理空間(geospatial)索引和流(streams)等。[3][1]這些數據結構支持push/pop、add/remove及取交集、併集和差集等豐富操作,且這些操作都是原子性的。[1]
Redis提供了多種持久化選項:[4]
- RDB(Redis Database):在指定的時間間隔執行數據集的即時快照。 - AOF(Append Only File):記錄伺服器收到的每次寫入操作,可在伺服器啟動時重新播放這些操作以重建原始數據集。 - 無持久化:可完全禁用持久性,適用於純緩存場景。 - RDB + AOF:可將AOF和RDB組合在同一個實例中使用。
Redis提供了哨兵(Sentinel)模式支持高可用,以及集群(Cluster)模式支持自動故障恢復和數據分片。[2]Redis還支持主從複製(replication),數據可以從主伺服器向任意數量的從伺服器同步。[1]
Redis內置了複製(replication)、Lua腳本(Lua scripting)、LRU淘汰(LRU eviction)、事務(transactions)等功能。[3]同時,Redis提供了鍵過期功能(可用於實現緩存)、發布訂閱功能(可用於實現消息系統)以及流水線(Pipeline)功能,使客戶端能將一批命令一次性傳輸到Redis,減少網絡開銷。[5]
Redis的原始碼長期在BSD 3-Clause許可下提供。2024年3月,Redis公司宣布從Redis 7.4開始,將採用Redis原始碼可用許可證版本2(RSALv2)或伺服器端公共許可證版本1(SSPLv1)的雙重許可方式。[6][7]
- ↑ 1.0 1.1 1.2 1.3 1.4 Redis_百度百科
- ↑ 2.0 2.1 2.2 2.3 2.4 2.5 什麼是Redis? - 阿里雲
- ↑ 3.0 3.1 3.2 Redis About
- ↑ Redis 持久性 - redis.ac.cn
- ↑ 【攻克Redis】Redis基本知識 - 阿里雲開發者社區
- ↑ 引用錯誤:無效的
<ref>標籤,未定義名稱為license的參考文獻內容文字。 - ↑ Redis 的許可證是 BSD,並將始終是 BSD - redis.ac.cn