使用Redis有哪些好處?

使用Redis有哪些好處?

  1. 什麼是Redis
    Redis是由意大利人Salvatore Sanfilippo(網名:antirez)開發的一款內存高速緩存數據庫。Redis全稱爲:Remote Dictionary Server(遠程數據服務),bai該軟件使用C語言編寫,Redis是一個key-value存儲系統,它支持豐富的數據類型,如:string、list、set、zset(sorted set)、hash。
  2. Redis特點
    Redis以內存作爲數據存儲介質,所以讀寫數據的效率極高,遠遠超過數據庫。以設置和獲取一個256字節字符串爲例,它的讀取速度可高達110000次/s,寫速度高達81000次/s。
    Redis跟memcache不同的是,儲存在Redis中的數據是持久化的,斷電或重啓後,數據也不會丟失。因爲Redis的存儲分爲內存存儲、磁盤存儲和log文件三部分,重啓後,Redis可以從磁盤重新將數據加載到內存中,這些可以通過配置文件對其進行配置,正因爲這樣,Redis才能實現持久化。

Redis支持主從模式,可以配置集羣,這樣更利於支撐起大型的項目,這也是Redis的一大亮點。

  1. Redis應用場景,它能做什麼
    衆多語言都支持Redis,因爲Redis交換數據快,所以在服務器中常用來存儲一些需要頻繁調取的數據,這樣可以大大節省系統直接讀取磁盤來獲得數據的I/O開銷,更重要的是可以極大提升速度。拿大型網站來舉個例子,比如a網站首頁一天有100萬人訪問,其中有一個板塊爲推薦新聞。
    Redis 的應用場景包括:緩存系統(“熱點”數據:高頻讀、低頻寫)、計數器、消息隊列系統、排行榜、社交網絡和實時系統。
    使用Redis有哪些好處?
    應用場景:
    我們簡單舉個實例來描述下Hash的應用場景,比如我們要存儲一個用戶信息對象數據,包含以下信息:
    用戶ID爲查找的key,存儲的value用戶對象包含姓名,年齡,生日等信息,如果用普通的key/value結構來存儲,主要有以下2種存儲方式





使用Redis有哪些好處?
第一種方式將用戶ID作爲查找key,把其他信息封裝成一個對象以序列化的方式存儲,這種方式的缺點是,增加了序列化/反序列化的開銷,並且在需要修改其中一項信息時,需要把整個對象取回,並且修改操作需要對併發進行保護,引入CAS等複雜問題。
使用Redis有哪些好處?
第二種方法是這個用戶信息對象有多少成員就存成多少個key-value對兒,用用戶ID+對應屬性的名稱作爲唯一標識來取得對應屬性的值,雖然省去了序列化開銷和併發問題,但是用戶ID爲重複存儲,如果存在大量這樣的數據,內存浪費還是非常可觀的。
那麼Redis提供的Hash很好的解決了這個問題,Redis的Hash實際是內部存儲的Value爲一個HashMap,並提供了直接存取這個Map成員的接口,如下圖:使用Redis有哪些好處?



  也就是說,Key仍然是用戶ID, value是一個Map,這個Map的key是成員的屬性名,value是屬性值,這樣對數據的修改和存取都可以直接通過其內部Map的Key(Redis裏稱內部Map的key爲field), 也就是通過 key(用戶ID) + field(屬性標籤) 就可以操作對應屬性數據了,既不需要重複存儲數據,也不會帶來序列化和併發修改控制的問題。很好的解決了問題。

要是直接從數據庫查詢,那麼一天就要多消耗100萬次數據庫請求。上面已經說過,Redis支持豐富的數據類型,所以這完全可以用Redis來完成,將這種熱點數據存到Redis(內存)中,要用的時候,直接從內存取,極大的提高了速度和節約了服務器的開銷。
總之,Redis的應用是非常廣泛的,而且極有價值,真是服務器中的一件利器,所以從現在開始,我們就來一步步學好它。

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