Redis 五種數據類型

Redis支持五種數據類型

  • String(字符串
  • Hash(哈希)
  • List(列表)
  • Set(集合)
  • zset(sorted set:有序集合)
類型 簡介 特性 場景
String(字符串) 二進制安全 可以包含任何數據,比如jpg圖片或者序列化的對象,一個鍵最大能存儲512M
Hash(字典) 鍵值對集合,即編程語言中的Map類型 適合存儲對象,並且可以像數據庫中update一個屬性一樣只修改某一項屬性值(Memcached中需要取出整個字符串反序列化成對象修改完再序列化存回去) 存儲、讀取、修改用戶屬性
List(列表) 鏈表(雙向鏈表) 增刪快,提供了操作某一段元素的API 1,最新消息排行等功能(比如朋友圈的時間線) 2,消息隊列
Set(集合) 哈希表實現,元素不重複 1、添加、刪除,查找的複雜度都是O(1) 2、爲集合提供了求交集、並集、差集等操作 1、共同好友 2、利用唯一性,統計訪問網站的所有獨立ip 3、好友推薦時,根據tag求交集,大於某個閾值就可以推薦
Sorted Set(有序集合) 將Set中的元素增加一個權重參數score,元素按score有序排列 數據插入集合時,已經進行天然排序 1、排行榜 2、帶權重的消息隊列

String(字符串)

string類型是二進制安全的,redis的string可以包含任何數據,如圖像、序列化對象。一個鍵最多能存儲512MB。二進制安全是指,在傳輸數據的時候,能保證二進制數據的信息安全,也就是不會被篡改、破譯;如果被攻擊,能夠及時檢測出來 。

  • 設置鍵值 :set key value

  • 獲取鍵值 ,如果不存在此鍵則返回nil :get key
    在這裏插入圖片描述

  • 設置多個鍵值:mset key1 value1 key2 value2

  • 獲取多個鍵值:mget key1 key2
    在這裏插入圖片描述

  • 設置鍵值及過期時間,以秒爲單位 :setex key seconds value
    在這裏插入圖片描述

  • 只有在 key 不存在時設置 key 的值。setnx key value
    在這裏插入圖片描述

  • 同時設置一個或多個 key-value 對,當且僅當所有給定 key 都不存在。MSETNX key value [key value ...]

  • 返回 key 中字符串值的子字符 GETRANGE key start end

  • 將給定 key 的值設爲 value ,並返回 key 的舊值(old value)。GETSET key value

  • 將key對應的value加1 。INCR key

  • 將key對應的value加整數 。 INCRBY key increment

  • 將key對應的value減1 。 DECR key

  • 將key對應的value減整數。 DECRBY key decrement

  • 追加值 APPEND key value

  • 獲取值長度 STRLEN key

hash

Redis hash 是一個string類型的field和value的映射表,hash特別適合用於存儲對象。 Redis 中每個 hash 可以存儲 2的32次方 - 1 鍵值對(40多億)。

  • 設置單個屬性 :hset key field value
  • 設置多個屬性 :hmset key field1 value1 field2 value2 ...
  • 只有在字段 field 不存在時,設置哈希表字段的值。 HSETNX key field value

在這裏插入圖片描述

  • 獲取⼀個屬性的值 : hget key field
  • 獲取多個屬性的值 : hmget key field1 field2 ...
  • 獲取指定鍵所有的屬性 :hkeys key
  • 獲取指定鍵所有屬性的值:hvals key

在這裏插入圖片描述

  • 刪除屬性及值 :hdel key field1 field2 ...
  • 刪除整個hash鍵及值 :del key
  • 判斷屬性是否存在 : hexists key field

在這裏插入圖片描述

list

列表是簡單的string列表,按照插入順序排序,可以在列表的頭部或者尾部添加元素。

  • 在左側插⼊數據 :lpush key value1 value2 ...
  • 在右側插⼊數據 :rpush key value1 value2 ...
  • 在指定元素的前或後插⼊新元素 :linsert key before或after 現有元素 新元素

在這裏插入圖片描述

  • 返回列表⾥指定範圍內的元素 :lrange key start stop
    • start、stop爲元素的下標索引
    • 索引從左側開始,第⼀個元素爲0
    • 索引可以是負數,表示從尾部開始計數,如-1表示最後⼀個元素

在這裏插入圖片描述

  • 設置指定索引位置的元素值 :lset key index value
    • 索引從左側開始,第⼀個元素爲0
    • 索引可以是負數,表示尾部開始計數,如-1表示最後⼀個元素

在這裏插入圖片描述

  • 移出並獲取列表的第一個元素 :lpop key
  • 移出並返回列表最後一個元素 : rpop key

在這裏插入圖片描述

  • 刪除指定元素: lrem key count value
    • 將列表中前count次出現的值爲value的元素移除
    • count > 0: 從頭往尾移除
    • count < 0: 從尾往頭移除
    • count = 0: 移除所有

在這裏插入圖片描述

  • 獲取列表長度:llen key
  • 通過索引獲取列表中的元素:lindex key index

在這裏插入圖片描述

set

⽆序集合,元素爲string類型,元素具有唯⼀性,不重複。說明:對於集合沒有修改操作。

  • 添加元素 :sadd key member1 member2 ...
  • 返回集合元素個數:scard key
  • 返回key集合所有的元素 :smembers key

在這裏插入圖片描述

zset

sorted set,有序集合,元素爲string類型,元素具有唯⼀性,不重複。每個元素都會關聯⼀個double類型的score,表示權重,通過權重將元素從⼩到⼤排序。說明:沒有修改操作。

  • 添加元素:zadd key score1 member1 score2 member2 ..

向鍵’a4’的集合中添加元素’lisi’、‘wangwu’、‘zhaoliu’、‘zhangsan’,權重分別爲4、5、6、3

在這裏插入圖片描述

  • 返回指定範圍內的元素 :zrange key start stop

  • 返回元素個數:zcard key

  • 返回score值在min和max之間的成員 : zrangebyscore key min max

  • 返回成員member的score值 : zscore key member
    在這裏插入圖片描述

  • 刪除指定元素 :zrem key member1 member2 ..

  • 刪除權重在指定範圍的元素:zremrangebyscore key min max
    在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章