您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關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有什么不一樣的地方就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。