redis學習02---redis的基礎資料
阿新 • • 發佈:2018-12-10
- 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 會報錯 |