Redis基本數據結構
阿新 • • 發佈:2018-06-28
-h 類型 ted key-value 插入 ogl key span 無序集合
Redis基本數據結構
- Redis(REmote DIctionary Server)是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API
- Redis通常被稱為數據結構服務器,因為值(value)可以使字符串(String),哈希(Map),列表(list),集合(Set),和有序集合(sorted sets)等類型
Redis 哈希(Hash)
- Redis Hash是一個string類型的field和value的映射表,hash特別適合用於存儲對象
- Redis中每個hash可以存儲232-1
(40多億)個鍵值對
Redis 列表(List)
- Redis列表是簡單的字符串列表,按照插入順序排序,可以添加一個元素列表的頭部(左邊)或者尾部(右邊)
- Redis中一個列表最多可以存儲232-1個元素
Redis集合(Set)
- Redis的Set是String類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現重復的數據
- Redis中集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)
- Redis中的一個集合中最多存儲232-1個成員
Redis有序集合(sorted set)
- Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重復的成員
- 不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序
- 有序集合的成員是唯一的,但分數(score)卻可以重復
- 集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。 集合中最大的成員數為232-1
Redis HyperLogLog
- Redis HyperLogLog 是用來做基數統計(計算數據集中不重復元素的個數)的算法,HyperLogLog 的優點是,在輸入元素的數量或者體積非常非常大時,計算基數所需的空間總是固定的、並且是很小的
- 在 Redis 裏面,每個 HyperLogLog 鍵只需要花費 12 KB 內存,就可以計算接近264
個不同元素的基 數。這和計算基數時,元素越多耗費內存就越多的集合形成鮮明對比- 因為 HyperLogLog只會根據輸入元素來計算基數,而不會儲存輸入元素本身,所以 HyperLogLog不能像集合那樣,返回輸入的各個元素
Redis基本數據結構