redis 使用動態數據結構“redis 對象”存儲數據,包括字符串、散列、列表、集合和有序集合。這些對象使用 rdb 格式進行內部表示,并根據數據特性使用不同的編碼類型進行優化。redis 對象的生命周期受創建、獲取、修改和刪除操作的影響,并且可以設置過期時間(ttl),在 ttl 過后自動刪除對象。
Redis 存儲對象的方式
Redis 是一種鍵值對數據庫,它使用一種稱為 Redis 對象的方式來存儲數據。Redis 對象是動態數據結構,可以存儲各種類型的數據,包括字符串、散列、列表、集合和有序集合。
存儲數據類型
字符串:存儲二進制安全的字符串。
散列:存儲鍵值對的映射集合。
列表:存儲按順序排列的元素。
集合:存儲唯一的元素集合。
有序集合:存儲具有分數的元素的集合,按分數排序。
對象的內部表示
Redis 對象使用一種稱為 RDB(Redis 數據庫)的二進制格式進行內部表示。RDB 格式提供了緊湊的數據存儲,并且可以快速加載到內存中。
對象的編碼
Redis 使用一種稱為對象的編碼的方式來優化對象的存儲。編碼類型由數據的特性決定,并影響對象的內存使用和訪問性能。
intset:用于存儲小的整數集合。
ziplist:用于存儲小列表和散列。
linkedlist:用于存儲大型列表和散列。
hashtable:用于存儲鍵值對映射。
skiplist:用于存儲有序集合。
對象的生命周期
Redis 對象的生命周期由以下操作決定:
創建:當使用 SET 或其他命令創建對象時。
獲取:當使用 GET 或其他命令獲取對象時。
修改:當使用 INCR 或其他命令修改對象時。
刪除:當使用 DEL 或其他命令刪除對象時。
對象的過期
Redis 對象可以設置過期時間(TTL),在 TTL 過后,對象將自動刪除。