1. 特點 1. Redis支持數據的持久化,重啟時可以再次載入使用。 2. Redis除了支持key value類型的數據,還提供了list,set,zset,hash等數據結構的存儲。 3. Redis支持數據備份,master slave模式的數據備份。 2. 優勢 1. 性能極高 讀取速度1 ...
1. 特點
- Redis支持數據的持久化,重啟時可以再次載入使用。
- Redis除了支持key-value類型的數據,還提供了list,set,zset,hash等數據結構的存儲。
- Redis支持數據備份,master-slave模式的數據備份。
2. 優勢
- 性能極高 - 讀取速度110000次/s,寫入速度81000次/s。
- 豐富的數據類型 - 支持二進位案例的Strings、Lists、Hashes、Sets及Ordered Sets。
- 原子 - 所有操作均為原子性,同時支持對幾個操作全並後的原子性執行。
- 豐富的特性 - 支持publish/subscribe、通知、key過期等特性。
3. 與其他key-value存儲的不同
- 支持更加複雜的數據結構,並提供對他們的原子性操作。Redis的數據類型都是基於基本數據結構。
- 運行在記憶體中,但支持數據的持久化。在記憶體中操作複雜的數據結構更加簡單。以緊湊的追加方式進行數據磁碟格式,因為他們並不需要進行隨機訪問。
4. 在Ubuntu下安裝
安裝
$sudo apt-get update
$sudo apt-get install redis-server
啟動
$redis-server
檢查是否啟動
$redis-cli
//輸入ping命令。如果輸出PONG,說明已經成功安裝Redis
5. Redis配置
- 配置文件位於Redis安裝目錄下,名為
Redis.conf
。 - 可以通過
CONFIG
命令查看或設置配置項。 - 配置參數說明 傳送門
//CONFIG GET 獲取配置項
redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME
//例如
redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"
//可以使用 * 號獲取所有的配置項
redis 127.0.0.1:6379> CONFIG GET *
//CONFIG SET 設置配置項
redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
//例如
redis 127.0.0.1:6379> CONFIG SET loglevel "notice"
6. 數據類型
Redis支持5種數據類型:string
(字元串)、hash
(哈希)、list
(列表)、set
(集合)、zset
(有序集合)。
string類型
- 二進位安全的。可以包含任何數據。比如jpg圖片或者序列化的對象。
- 一個鍵值最大能存儲512MB的數據。
hash類型
- 鍵名對集合。
- 是一個string類型的field和value的映射表。特別適合存儲對象。
- 每個hash可以存儲 \(2^{32}-1\) 鍵值對。(大約40多億)
list類型
- 簡單的字元串列表。
- 按照插入順序排序。
- 可以在頭部或者尾部添加。
- 每個列表最多儲存\(2^{32}-1\)個元素。(大約40多億)
set類型
- 是string類型元素的無序集合。
- 通過哈希表實現,因此添加、刪除、查找的複雜度為\(O(1)\)。
- 集合內的元素具有唯一性。
- 每個集合最大成員數\(2^{32}-1\)個元素。(大約40多億)
zset類型
- 是string類型元素的有序集合。
- 每個元素會關聯一個double類型的分數。並通過該分數對集合成員進行排序。
- 集合內的元素具有唯一性,但是分數score確可以重覆。
7. Redis命令
- 使用redis客戶端。
$ redis-cli
- 在遠程伺服器上執行命令
$ redis-cli -h host -p port -a password
8. Redis鍵(key)
Redis的鍵命令用來管理Redis的鍵。
語法
redis 127.0.0.1:6379> COMMAND KEY_NAME
主要命令
DEL key //刪除一個存在的key。
DUMP key //序列化給定的key,並返回序列化的值。
EXISTS key //檢查key是否存在。
EXPIRE key seconds //設置過期時間。
EXPIREAT key timestamp //設置過期時間,參數為時間戳。
PEXPIRE key milliseconds //設置過期時間,以毫秒計。
PEXPIREAT key milliseconds-timestamp //設置過期時間,時間戳以毫秒計。
KEYS pattern //查找所有符合給定模式(pattern)的key。
MOVE key db //將當前資料庫的key移動到給定的資料庫db當中。
PERSIST key //移除key的過期時間,key將持久保存。