- Redis介紹
Redis(Remote Dictionary Server)(遠端資料服務)的縮寫,由意大利人 antirez(Salvatore Sanfilippo)開發的一款記憶體高速緩存資料庫。是一個開源的使用ANSI C語言編寫、支援網絡、可基于記憶體亦可持久化的日志型、Key-Value資料庫,并提供多種語言的API。
簡單說 Redis 是一個高性能的 key-value 資料庫。每秒可執行操作高達10萬+QPS
- Redis特點
1.支援資料持久化,可将記憶體中的資料儲存在磁盤,重新開機時再次加載
2.支援 KV 類型資料,也支援其他豐富的資料結構存儲
3.支援資料備份,即 master-slave 模式的資料備份
- Redis資料結構
STRING:字元串、整數或浮點數
LIST:清單,可存儲多個相同的字元串
SET:集合,存儲不同元素,無序排列
HASH:散清單,存儲鍵值對之間的映射,無序排列
ZSET:有序集合,存儲鍵值對,有序排列
- Redis操作使用
1.Key
Key的命名規則不同于一般語言,鍵盤上除了空格、\n換行外其他的大部分字元都可以使用。像“my key”和“mykey\n”這樣包含空格和換行的key是不允許的。我們在使用的時候可以自己定義一個Key的格式。例如 object-type:id:field。
Key不要太長。占記憶體,查詢慢。Key不要太短。像u:1000:pwd 就不如 user:1000:password 可讀性好
2.String
String是Redis最基本的類型,Redis的String可以包含任何資料。包括jpg圖檔或者序列化的對象。
單個value值最大上限是1G位元組。
3.List
List類型其實就是一個雙向連結清單。通過push,pop操作從連結清單的頭部或者尾部添加删除元素。
這使得List既可以用作棧,也可以用作隊列。
棧 先進後出 同一端進出
隊列 先進先出 一端進,另外一端出

List類型經常用于搶購,通過隊列形式去實作高并發下的商品發售購買流程。
4.Set
Redis的Set是String類型的無序集合。不允許有重複元素
Set元素最大可以包含(2的32次方-1)個元素。關于Set集合類型除了基本的添加删除操作,其他有用的操作還包含集合的取并集(union),交集(intersection),差集(difference)。通過這些操作可以很容易的實作聊天軟體中的好友推薦功能。
5.Zset
和Set一樣sorted set也是String類型元素的集合,不允許有重複元素
不同的是每個元素都會關聯一個權(score)。通過權值可以有序的擷取集合中的元素。
6.Hash
key=>value(feild:value),适合存儲key=>value對應格式的資料。json對應關系、對象對應關系、關聯數組,哈希類型也是Redis用的比較多類型之一