Redis支持哪些基本的數(shù)據(jù)類型?
1. String(字符串)
String是Redis最基礎(chǔ)的數(shù)據(jù)類型,可存儲(chǔ)文本、數(shù)字或二進(jìn)制數(shù)據(jù)(最大512MB)。
典型場(chǎng)景:緩存會(huì)話信息、計(jì)數(shù)器、分布式鎖。
SET user:1 "Alice"
INCR article_views
2. Hash(哈希表)
Hash以鍵值對(duì)形式存儲(chǔ)對(duì)象屬性,適合結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)。
典型場(chǎng)景:用戶資料、商品詳情。
HSET product:1001 name "Laptop" price 999
3. List(列表)
List為雙向鏈表結(jié)構(gòu),支持頭部/尾部插入和彈出操作。
典型場(chǎng)景:消息隊(duì)列、最新動(dòng)態(tài)流。
LPUSH news:feed "New feature released"
RPOP orders
4. Set(集合)
Set存儲(chǔ)唯一無序元素,支持集合運(yùn)算(交集、并集、差集)。
典型場(chǎng)景:標(biāo)簽系統(tǒng)、共同好友。
SADD tags:article:200 "database" "nosql"
SINTER user:A:tags user:B:tags
5. Sorted Set(有序集合)
Sorted Set通過score值排序成員,兼具集合唯一性與有序性。
典型場(chǎng)景:排行榜、延遲隊(duì)列。
ZADD leaderboard 1500 "PlayerA"
ZREVRANGE leaderboard 0 9 WITHSCORES
擴(kuò)展數(shù)據(jù)類型
Redis還支持Bitmaps(位圖)、HyperLogLog(基數(shù)統(tǒng)計(jì))、Geospatial(地理坐標(biāo))、Streams(流數(shù)據(jù))等高級(jí)數(shù)據(jù)結(jié)構(gòu),滿足特定場(chǎng)景需求。
選擇數(shù)據(jù)類型的核心原則
- 根據(jù)數(shù)據(jù)關(guān)系選擇:一對(duì)一用String,一對(duì)多用Hash/List
- 考慮讀寫模式:高頻寫入用List,排序需求用Sorted Set
- 內(nèi)存優(yōu)化:小對(duì)象優(yōu)先用Hash壓縮存儲(chǔ)