redis數(shù)據(jù)結(jié)構(gòu)有哪些

redis數(shù)據(jù)結(jié)構(gòu)有哪些

redis數(shù)據(jù)結(jié)構(gòu)有哪些?

推薦:《redis視頻教程

字符串(strings):

存儲整數(shù)(比如計數(shù)器)和字符串(廢話。。),有些公司也用來存儲json/pb等序列化數(shù)據(jù),并不推薦,浪費內(nèi)存;

哈希表(hashes):

存儲配置,對象(比如用戶、商品),優(yōu)點是可以存取部分key,對于經(jīng)常變化的或者部分key要求atom操作的適合;

列表(lists):

可以用來存最新用戶動態(tài),時間軸,優(yōu)點是有序,確定是元素可重復(fù),不去重;

集合(sets):

無序,唯一,對于要求嚴(yán)格唯一性的可以使用;

有序集合(sorted sets):

集合的有序版,很好用,對于排名之類的復(fù)雜場景可以考慮;

位圖(bitmaps):

這個不是新增的數(shù)據(jù)類型,只是可以把字符串類型按照單個位的形式進(jìn)行操作,沒有實際使用過。網(wǎng)上很多人用bitmaps來做活躍用戶統(tǒng)計和用戶簽到功能,性能比去數(shù)據(jù)庫load高很多。

計數(shù)器(hyperloglogs,翻譯待定):

如名字,添加元素只記錄元素個數(shù),并不會存儲元素本身,節(jié)省空間并且避免重復(fù)count,這個感覺直接用incr就可以實現(xiàn);

地理空間(geospatial indexes):

用來做地理位置查詢,比如兩點之間的距離,一個點附近有多少元素,適合點比較固定的場景,或者只考慮當(dāng)前位置的場景,像附近的人這種就不適合,一是需要考慮某段時間內(nèi)的點,二是點經(jīng)常更新,壓力比較大。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊14 分享