redis缓存数据表
直觀上看,數(shù)據(jù)庫中的數(shù)據(jù)都是按表存儲的;更微觀地看,這些表都是按行存儲的。每執(zhí)行一
次select查詢,數(shù)據(jù)庫都會返回一個結(jié)果集,這個結(jié)果集由若干行組成。所以,一個自然而然
的想法就是在Redis中找到一種對應于數(shù)據(jù)庫l行的數(shù)據(jù)結(jié)構(gòu)。Redis中提供了五種基本數(shù)據(jù)結(jié)構(gòu)
,即字符串(string)、列表(list)、哈希(hash)、集合(set)和有序集合(sorted
set)。經(jīng)過調(diào)研,發(fā)現(xiàn)適合存儲行的數(shù)據(jù)結(jié)構(gòu)有兩種,即string和hash。
要把數(shù)據(jù)庫的行數(shù)據(jù)存入string,首先需要對行數(shù)據(jù)進行格式化。事實上,結(jié)果集的
每一行都可以看做若干由字段名和其對應值組成的鍵值對集合。這種鍵值對結(jié)構(gòu)很容易讓我們
想起Json格式。因此,這里選用Json格式作為結(jié)果集每一行的格式化模板。根據(jù)這一想法,我
們可以實現(xiàn)將結(jié)果集格式化為若干Json對象,并將Json對象轉(zhuǎn)化為字符串存入Redis。
?
要把數(shù)據(jù)庫的行數(shù)據(jù)存入hash,過程要比把數(shù)據(jù)存入string直觀很多。這是由hash的結(jié)構(gòu)性質(zhì)?
決定的——hash本身就是一個鍵值對集合:一個“父鍵”下面包含了很多“子鍵”,每個“子?
鍵”都對應一個值。根據(jù)前面的分析可知,結(jié)果集中的每一行實際上也是鍵值對集合。用
Redis鍵值對集合表示數(shù)據(jù)庫鍵值對集合應該再合適不過了:對于結(jié)果集中的某一行,字段對應
于hash的“子鍵”,字段對應的值就是hash“子鍵”對應的值,即結(jié)果集的一行剛好對應一個
hash
?
Redis hash是一個string類型的field和value的映射表.一個key可對應多個field,一個field對應一個value。將一個對象存儲為hash類型,較于每個字段都存儲成string類型更能節(jié)省內(nèi)存。
總結(jié)
以上是生活随笔為你收集整理的redis缓存数据表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win10浏览器403 Forbidde
- 下一篇: 失败如何助你升入最高管理层