首頁 >資料庫 >Redis >redis一般儲存什麼類型數據

redis一般儲存什麼類型數據

尚
原創
2019-06-28 15:43:0521147瀏覽

redis一般儲存什麼類型數據

Redis是一個開源的底層使用C語言編寫的key-value儲存資料庫。可用於快取、事件發布訂閱、高速隊列等場景。而且支援豐富的資料類型:string(字串)、hash(哈希)、list(列表)、set(無序集合)、zset(sorted set:有序集合)

Redis在專案中的應用程式場景

1、快取資料

最常用,對經常需要查詢且變動不是很頻繁的數據常稱作熱點數據。

2、訊息佇列

相當於訊息訂閱系統,像是ActiveMQ、RocketMQ。如果對資料有較高一致性要求時,還是建議使用MQ)

3、計數器

例如統計點擊率、按讚率,redis具有原子性,可以避免並發問題

4、電商網站資訊

##大型電商平台初始化頁面資料的緩存。例如去哪裡網買機票的時候首頁的價格和你點進去的價格會有差異。

5、熱點資料

例如新聞網站即時熱點、微博熱搜等,需要頻繁更新。總資料量比較大的時候直接從資料庫查詢會影響效能

Redis資料類型的應用程式場景

前面提到了Redis支援五種豐富的資料類型,那麼在不同場景下我們該怎麼選擇呢?

1、String

字串是最常用的資料類型,他能夠儲存任何類型的字串,當然也包括二進位、 JSON化的物件、甚至是base64編碼之後的圖片。在Redis中一個字串最大的容量為512MB,可以說是無所不能了。

2、Hash

常用作儲存結構化資料、例如論壇系統中可以用來儲存使用者的Id、暱稱、頭像、積分等資訊。如果需要修改其中的信息,只需要透過Key取出Value進行反序列化修改某一項的值,再序列化儲存到Redis中,Hash結構存儲,由於Hash結構會在單一Hash元素在不足一定數量時進行壓縮存儲,所以可以大量節約內存。這一點在String結構裡是不存在的。

3、List

List的實作為雙向鍊錶,即可以支援反向查找和遍歷,更方便操作,不過帶來了部分額外的記憶體開銷,Redis 內部的許多實現,包括發送緩衝佇列等也都是用的這個資料結構。另外,可以利用 lrange 指令,做基於 Redis 的分頁功能,效能極佳,使用者體驗好。

4、Set

set 對外提供的功能與list 類似是一個清單的功能,特殊之處在於set 是可以自動排重的,當你需要儲存一個清單數據,又不希望出現重複數據時,這個時候就可以選擇使用set。

5、Sort Set

可以依照某個條件的權重排序,例如可以透過點擊數做出排行榜的資料應用。

Redis特點:

1、Redis是純記憶體操作,需要的時候需要我們手動持久化到硬碟中

2、Redis是單線程,從而避開了多線程中上下文頻繁切換的操作。

3、Redis資料結構簡單、對資料的操作也比較簡單

4、使用底層模型不同,它們之間底層實現方式以及與客戶端之間通訊的應用協定不一樣,Redis直接自己建構了VM 機制,因為一般的系統呼叫系統函數的話,會浪費一定的時間去移動和請求

5、使用多路I/O復用模型,非阻塞I/O

更多Redis相關知識,請造訪Redis使用教學欄位!

以上是redis一般儲存什麼類型數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn