Redis介紹

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進行範圍取值。

相較於傳統的關係型數據庫 ,Redis有更好的讀、寫吞吐能力,能哦故支撐更高的併發數。而相較於其他的key-value類型的數據庫,Redis能夠提供更爲豐富的數據類型的支持,能夠更靈活 地滿足業務需求。Redos能夠高效率地實現諸如排序取topN、訪問計數器、隊列系統、數據排重等業務需求,並且通過將服務器設置爲cache-only,還能夠提供高性能的緩存。相較於memcache來說,在性能差別不大的情況下,它能夠支持更爲豐富的數據類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章