hash型別的應用場景 Redis實戰經驗

2022-08-12 20:51:08 字數 1219 閱讀 8858

hash型別是乙個string型別的field和value的對映表,每個 hash 可以儲存 232 - 1 鍵值對(40多億),hash型別主要有以下應用場景。

1. 購物車

以使用者id為key,商品id為field,商品數量為value,恰好構成了購物車的3個要素,如下圖所示。

2. 儲存物件

hash型別的(key, field, value)的結構與物件的(物件id, 屬性, 值)的結構相似,也可以用來儲存物件。

在介紹string型別的應用場景時有所介紹,string + json也是儲存物件的一種方式,那麼儲存物件時,到底用string + json還是用hash呢?

兩種儲存方式的對比如下表所示。

string + json

hash

效率很高高容量

低低靈活性

高序列化

簡單複雜

當物件的某個屬性需要頻繁修改時,不適合用string+json,因為它不夠靈活,每次修改都需要重新將整個物件序列化並賦值,如果使用hash型別,則可以針對某個屬性單獨修改,沒有序列化,也不需要修改整個物件。比如,商品的**、銷量、關注數、評價數等可能經常發生變化的屬性,就適合儲存在hash型別裡。

當然,不常變化的屬性儲存在hash型別裡也沒有問題,比如商品名稱、商品描述、上市日期等。但是,當物件的某個屬性不是基本型別或字串時,使用hash型別就必須手動進行複雜序列化,比如,商品的標籤是乙個標籤物件的列表,商品可領取的優惠券是乙個優惠券物件的列表(如下圖所示)等,即使以coupons(優惠券)作為field,value想儲存優惠券物件列表也還是要使用json來序列化,這樣的話序列化工作就太繁瑣了,不如直接用string + json的方式儲存商品資訊來的簡單。

綜上,一般物件用string + json儲存,物件中某些頻繁變化的屬性抽出來用hash儲存

hash型別的常用命令可參考

加入hash型別的應用場景後的思維導圖如下。

Hash演算法應用場景

一.雜湊演算法的定義 1.雜湊演算法又叫雜湊演算法,是將任意長度的二進位制值對映為較短的固定長度的二進位制值,這個小的二進位制值稱為雜湊值。它的原理其實很簡單,就是把一段交易資訊轉換成乙個固定長度的字串。2.雜湊表是基於快速訪問的角度設計的,是一種典型的空間換時間的做法,二.從set map談到ha...

b樹和hash的應用場景

關係型資料庫中,索引大多採用b b 樹來作為儲存結構,而全文搜尋引擎的索引則主要採用hash的儲存結構,這兩種資料結構有什麼區別?hash結構的特點 檢索效率非常高,索引的檢索可以一次到位,o 1 b樹需要從根節點到枝節點,最後才能到葉節點進行多次i o操作,所以hash的效率遠遠高於b樹的效率。那...

SAP BTP MTA 應用的應用場景

程式語言 軟體設計架構 如微服務 協議 如 odata 的最新趨勢和進展,以及多層和分布式部署平台的多樣性,加速了由更多 更小 解耦和多樣化的模組構建應用程式的趨勢。在微服務架構下,越來越多的業務應用程式傾向於由使用不同語言和技術開發並部署到各種目標執行時環境的多個部分組成。這種應用程式模組的多樣性...