溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

redis中set和hset有什么不一樣的地方

發(fā)布時(shí)間:2020-08-13 10:17:24 來源:億速云 閱讀:229 作者:小新 欄目:關(guān)系型數(shù)據(jù)庫

這篇文章將為大家詳細(xì)講解有關(guān)redis中set和hset有什么不一樣的地方,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

redis中存數(shù)據(jù)時(shí),到底什么時(shí)候用  hset 相比于 set 存數(shù)據(jù)時(shí)又有什么不一樣?

set  就是普通的已key-value 方式存儲(chǔ)數(shù)據(jù),可以設(shè)置過期時(shí)間。時(shí)間復(fù)雜度為 O(1),沒多執(zhí)行一個(gè) set 在redis 中就會(huì)多一個(gè) key ,hset 則是以hash 散列表的形式存儲(chǔ)。超時(shí)時(shí)間只能設(shè)置在 大 key 上,單個(gè) filed 則不可以設(shè)置超時(shí) 時(shí)間復(fù)雜度我百度了很多文章都說是 O(1) 但是我下面給出的參考文章說時(shí)間上的時(shí)間復(fù)雜度其實(shí)是 O(N) N 值是單個(gè)hash 上的 filed 個(gè)數(shù),所以 hash 上單個(gè)不適合存儲(chǔ)大量的 filed 并且如果 filed 多了比較消耗cpu,但同時(shí)以 散列表存儲(chǔ)則比較節(jié)省內(nèi)存。

所以在實(shí)際的使用過程中應(yīng)該使用 set 存儲(chǔ)單個(gè)大文本非結(jié)構(gòu)化數(shù)據(jù) hset 則存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù),一個(gè) hash 存儲(chǔ)一條數(shù)據(jù),一個(gè) filed 則存儲(chǔ) 一條數(shù)據(jù)中的一個(gè)屬性,value 則是屬性對(duì)應(yīng)的值。

例如 數(shù)據(jù)庫中有一張表 user 包含  id,name,age,sex 4個(gè)屬性,并且有400w條數(shù)據(jù),

id,name,age,sex

1、1,張三,16,1

2、2,李四,22,1

3、3,王五,28,0

4、4,趙六,32,1

...

如果要整表緩存到 redis 中則使用 hash ,一條數(shù)據(jù)一個(gè)hash 一個(gè)hash 里則包含4個(gè)filed。

hset user_1 id 1 name 張三 age 16 sex 1

hset user_2 id 2 name 李四 age 16 sex 1

...

這樣存儲(chǔ),如果用戶的某個(gè)屬性值改變,還可以單個(gè)修改。

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

redis中set和hset有什么不一樣的地方

在比如如果要緩存應(yīng)用整個(gè)首頁 html ,或則某個(gè)商品的詳情介紹(一般來說商品的詳情介紹是makdown語法的富文本信息,或 html 格式的富文本信息) 則使用 則可以使用  set

又或則 應(yīng)用中的 某個(gè)熱點(diǎn)數(shù)據(jù),都可以使用 set 存儲(chǔ)一大段數(shù)據(jù)。

關(guān)于redis中set和hset有什么不一樣的地方就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI