日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis 五种数据类型

發布時間:2024/4/11 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis 五种数据类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Redis支持五種數據類型

  • String(字符串
  • Hash(哈希)
  • List(列表)
  • Set(集合)
  • zset(sorted set:有序集合)
類型簡介特性場景
String(字符串)二進制安全可以包含任何數據,比如jpg圖片或者序列化的對象,一個鍵最大能存儲512M
Hash(字典)鍵值對集合,即編程語言中的Map類型適合存儲對象,并且可以像數據庫中update一個屬性一樣只修改某一項屬性值(Memcached中需要取出整個字符串反序列化成對象修改完再序列化存回去)存儲、讀取、修改用戶屬性
List(列表)鏈表(雙向鏈表)增刪快,提供了操作某一段元素的API1,最新消息排行等功能(比如朋友圈的時間線) 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

總結

以上是生活随笔為你收集整理的Redis 五种数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。