Redis介紹
Reids是一個高性能的key-value數據庫,與其他很多key-value數據庫的不同之處在於,Redis不僅支持簡單的鍵值對類型的存儲,還支持其他一系列豐富的數據存儲結構,包括 strings、hashs、lists、sets、sorted sets等,並在這些數據結構類型上定義了一套強大的API。通過定義不同的存儲結構,Redis可以很輕易地完成其他key-value數據庫難以完成的任務,如排序、去重等。
使用Redis API
- 通過set方法,可以給對應的key設置;
- 通過get方法,可以獲取對應key的值;
- 通過setex方法可以給key-value設置有效期;
- 通過mset方法,一次可以設置多個key-value對;
- 通過mget方法,可以一次獲取多個key對應的value,這樣的好處是,可以避免多次請求帶來的網絡開銷,提高性能;
- 通過append方法,可以給已經存在的key對應的value後追加內容;
- Redis的hashs實際上是一個string類型的field和value的映射表,類似於Map,特別適合存儲對象。相對於將每個對象序列化後存儲,一個對象使用hashs存儲將會佔用更少的存儲空間,並且能夠更爲方便地存取整個對象;
- 通過hset方法,可以給一個Hash存儲結構添加key-value數據;
- 通過hmet方法,能夠一次性設置多個值;避免多次網絡操作的開銷;
- 使用hget方法,能夠取得一個Hash結構中某個key對應的value;
- 使用hmget方法,則可以一次性獲取得多個key對應的value;
- 通過hgetall方法,可以將Hash存儲對應的所有key-value一次性取出;
Redis的lists是一個鏈表結構,主要的功能是對元素的push和pop,以及獲取某個範圍內的值等。
- push和pop操作可以從鏈表的頭部或者尾部插入、刪除元素,這使得lists既可以作爲棧使用,又可以作爲隊列使用,其中,操作的key可以理解爲鏈表的名稱
- 通過lpush和rpush方法,分別可以在lish的首部和尾部添加元素
- 使用lpop和rpop方法,可以在list的首部和尾部刪除元素;
- 通過lrange方法,可以獲取list註定區間的元素;
Redis的sets與數據結構的set相似,用來存儲一個沒有重複元素的集合,對集合的元素可以進行添加和刪除的操作,並且鞥能夠對所有元素進行枚舉;
- sadd方法用來給set添加新的元素,而srem則可以元素進行刪除,通過smembers方法,能夠枚舉出set中的所有元素;
- sorted sets是Redis
sets的一個升級版本,它在sets的基礎之上增加了一個排序的屬性,該屬性在添加 元素時可以指定,sorted sets將根據該屬性來進行排序,每次新元素增加後,sorted sets會重新對順序進行調整。sorted sets不僅能夠通過range正序對set取值,還能夠通過rangeduiset進行逆序取值,極大地提高了set操作的靈活性
- 通過zadd方法來給sortec sets新增元素,在新增操作的同時,需要指定該元素排序的序號,以便進行排序;
- 使用zrange方法可以正序對set進行範圍取值;
- 而通過zrevrange方法,則可以高效地逆序對set進行範圍取值。