redis 的數據類型使用不同的底層存儲結構:字符串:簡單動態(tài)字符串(sds)哈希:哈希表,使用鏈表或跳躍表處理哈希碰撞列表:雙向鏈表集合:哈希表或整數集合,使用布隆過濾器有序集合:跳躍表或字典地理空間索引:跳躍表或 r 樹
Redis 數據類型底層存儲結構
Redis 是一款高性能 NoSQL 數據庫,支持多種數據類型,每種類型都采用不同的底層存儲結構。
字符串 (string)
底層存儲結構:簡單動態(tài)字符串 (SDS)
SDS 采用預分配內存,減少內存分配和釋放的開銷。
SDS 可以存儲二進制或文本數據,并支持高效的拼接和修改操作。
哈希 (hash)
底層存儲結構:哈希表
哈希表使用哈希函數將鍵映射到值。
每個鍵都存儲在哈希表中,由一個指向值的指針表示。
對于每個哈希桶,使用鏈表或跳躍表來存儲哈希碰撞。
列表 (list)
底層存儲結構:雙向鏈表
雙向鏈表將元素鏈接成一個順序列表。
鏈表中的每個元素都存儲一個指向下一個元素和前一個元素的指針。
鏈表支持高效的插入、刪除和查找操作。
集合 (set)
底層存儲結構:哈希表或整數集合
使用哈希表存儲元素,并使用布隆過濾器進行快速成員資格檢查。
整數集合僅適用于存儲整數,并采用更緊湊的存儲結構。
有序集合 (zset)
底層存儲結構:跳躍表或字典
跳躍表將元素組織成多層鏈表,實現高效的有序查找。
字典將元素存儲在哈希表中,并使用跳躍表來維護順序。
地理空間索引 (geospatial)
底層存儲結構:跳躍表或 R 樹
跳躍表用于存儲地理空間點的坐標。
R 樹是一個層次結構,用于高效查找和范圍查詢。