1. 程式人生 > >Redis基本數據結構

Redis基本數據結構

-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基本數據結構