首頁  >  文章  >  資料庫  >  redis中set和hset的區別和使用場景

redis中set和hset的區別和使用場景

藏色散人
藏色散人轉載
2020-08-12 13:28:146468瀏覽

下面由redis教學專欄來介紹redis中set和hset的差別和使用場景,希望對需要的朋友有幫助!

redis中set和hset的區別和使用場景

#redis#中存資料時,到底何時用 hset相較於set 存資料時又有什麼不一樣?

set  是普通的已key-value 方式儲存數據,可以設定過期時間。時間複雜度為 O(1),沒多執行一個 set 在redis 中就會多一個 key ,hset 則是以hash 散列表的形式儲存。超時時間只能設定在大key 上,單一filed 則不可以設定超時時間複雜度我百度了很多文章都說是O(1) 但是我下面給的參考文章說時間上的時間複雜度其實是O (N) N 值是單個hash 上的filed 個數,所以hash 上單個不適合存儲大量的filed 並且如果filed 多了比較消耗cpu,但同時以散列表存儲則比較節省內存。

所以在實際的使用過程中應該使用set 存儲單個大文本非結構化數據hset 則存儲結構化數據,一個hash 存儲一條數據,一個filed 則存儲一條數據中的一個屬性,value 則是屬性對應的值。

例如資料庫中有一張表user 包含 id,name,age,sex 4個屬性,並且有400w條數據,

id,name,age,sex

# 1、1,張三,16,1

2、2,李四,22,1

3、3,王五,28,0

4、 4,趙六,32,1

...

如果要整表快取到redis 中則使用hash ,一條資料一個hash 一個hash 裡則包含4個filed。

hset user_1 id 1 name 張三age 16 sex 1

hset user_2 id 2 name 李四age 16 sex 1

...

##這樣存儲,如果使用者的某個屬性值改變,也可以單一修改。

例如吧張三的年齡改為30 則可以使用指令:  hset user_1 age 30 

在例如如果要快取應用整個首頁html ,或則某個商品的詳情介紹(一般來說商品的詳情介紹是makdown語法的富文本信息,或html 格式的富文本信息) 則使用則可以使用 set

又或則應用中的某個熱點數據,都可以使用set 儲存一大段數據。

以上是redis中set和hset的區別和使用場景的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除