概述
REmote DIctionary Server(Redis)是一個由 Salvatore Sanfilippo 寫的 key-value 存儲系統。
Redis 是一個開源的、完全免費的、使用 ANSI C 語言編寫、遵守 BSD 協議、支持網絡、可基於內存亦可持久化的日誌型、Key-Value 數據庫,並提供多種語言的 API。
它通常被稱爲數據結構服務器,因爲值(value)可以是字符串(String), 哈希(Map), 列表(list), 集合(sets)和有序集合(sorted sets)等類型。
特點
- Redis 支持數據的持久化,可以將內存中的數據保存在磁盤中,重啓的時候可以再次加載進行使用
- Redis 不僅僅支持簡單的 key-value 類型的數據,同時還提供 list,set,zset,hash 等數據結構的存儲
- Redis 支持數據的備份,即 master-slave 模式的數據備份
優勢
- 性能極高 – Redis 能讀的速度是 110000次/s,寫的速度是 81000次/s
- 豐富的數據類型 – Redis 支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操作
- 原子 – Redis 的所有操作都是原子性的,同時 Redis 還支持對幾個操作全並後的原子性執行
- 豐富的特性 – Redis 還支持 publish/subscribe, 通知, key 過期等等特性
- Redis 有着更爲複雜的數據結構並且提供對他們的原子性操作,這是一個不同於其他數據庫的進化路徑。Redis 的數據類型都是基於基本數據結構的同時對程序員透明,無需進行額外的抽象
- Redis 運行在內存中但是可以持久化到磁盤,所以在對不同數據集進行高速讀寫時需要權衡內存,因爲數據量不能大於硬件內存。在內存數據庫方面的另一個優點是,相比在磁盤上相同的複雜的數據結構,在內存中操作起來非常簡單,這樣 Redis 可以做很多內部複雜性很強的事情。同時,在磁盤格式方面他們是緊湊的以追加的方式產生的,因爲他們並不需要進行隨機訪問