- http://redisdoc.com/
- Redis 的默認端口是 6379
- 字符串是由多個字節組成,每個字節又是由 8 個 bit 組成,如此便可以將一個字符串看成很多 bit 的組合
redis有5個基本數據結構:
redis的所有數據結構都是以唯一的KEY值來獲取相應的value數據,不同類型的數據結構的差異在於value的結構不一樣。
string (字符串)、list (列表)、set (集合)、hash (哈希) 和 zset (有序集合)
String
字符串的結構使用非常廣泛,常用於緩存用戶信息,我們將用戶信息結構體使用JSON序列化成字符串,然後將序列化後的字符串塞進Redis來緩存,同樣,取用戶信息會經過一次反序列化的過程。
redis的字符串是動態字符串,是可以修改的字符串,內部結構類似於java的ArrayList,採用預分配冗餘空間的方式來減少內存的頻繁分配,如圖:內部爲當前的字符串實際分配的空間大小( capacity)一般要高於實際字符串的長度len。當字符串長度<1M時,擴容都是加倍現有空間,如果>1M,擴容時一次只會多擴1M的空間,需要注意的是字符串最大長度爲512M
操作:
操作 | 命令 | 結果 |
創建字符串 | set key value | 成功返回ok |
獲得字符串 | get key | 存在返回value,不存在返回(nil) |
檢查key 是否存在 | exists key | 存在返回1,不存在返回0 |
刪除字符串 | del key | 刪除成功返回1,失敗返回0 |
批量對多個字符串進行讀寫 | mget key1 key2 key3... | 返回一個列表 |
批量新增多個字符串 | mset key1 value1 key2 value2 key3 value3 | 成功返回ok |
設置過期時間(key存在,覆寫舊值) | setex key 過期時間(秒) value | |
設置過期時間(key存在,不作操作) | setnx key value ( 將 key 的值設爲 value ,當且僅當 key 不存在) |
|
整數類型的value,自增 | 自增1:incr key 自增固定值:incrby key 值 | 自增範圍:signed long 的最大最小值,超過了這個值,Redis 會報錯 |