redis-6.string型別

aliyeye發表於2021-01-14

string型別

  • 儲存的資料:單個資料,最簡單的資料儲存型別,也是最常用的資料儲存型別
  • 儲存資料的格式:一個儲存空間儲存一個資料
  • 儲存內容:通常使用字串,如果字串以整數的形式展示,可以作為數字操作使用

    string型別資料的基本操作

  • 新增/修改資料
    set key value
  • 獲取資料
    get key
  • 刪除資料
    del key
  • 新增/修改多個資料
    mset key1 value1 key2 value2 ...
  • 獲取多個資料
    mget key1 key2 ...
  • 獲取資料字元個數(字串長度)
    strlen key
  • 追加資訊到原始資訊後部(如果原始資訊存在就追加,否則就新建)
    append key value
  • set和mset的操作選擇(主要是看業務和設定的條數來定,設定條數越多mset比set越好。條數的需要看它兩的零界點)

    string型別資料的擴充套件操作

    業務場景
    大型企業級應用中,分表操作是基本操作,使用多張表儲存同型別資料,但是對應的主鍵id必須保證統一性,不能重複。Oracle資料庫具有sequence設定,可以解決該問題,但是MySQL資料庫並不具備類似的機制,那麼如何解決?

    解決方案
  • 設定數值資料增加指定範圍的值
    incr key
    incrby key increment
    incrbyfloat key increment
  • 設定數值資料減少指定範圍的值
    decr key
    decrby key increment
    Tips1:
  • redis用於控制資料庫主鍵id,為資料庫表主鍵提供生成策略,保障資料庫表的主鍵唯一性
  • 此方案適用於所有資料庫,且支援資料庫叢集

業務場景
“最強女生”啟動海選投票,只能透過微信投票,每個微訊號每4小時只能投1票。
電商商家開啟熱門商品推薦,熱門商品不能一直處於熱門期維持3天,3天后自動取消。
新聞網站會出現熱點新聞,熱點新聞最大的特徵是時效性,如何自動控制熱點新聞的時效性。

解決方案

  • 設定資料具有指定的生命週期
    setex key seconds value
    psetex key milliseconds value
    Tips2:
  • redis控制資料的生命週期,透過資料是否失效控制業務行為,適用於所有具有時效性限定控制的操作。

string型別資料操作的注意事項

  • 資料操作不成功的反饋與資料正常操作之間的差異
    ①表示執行結果是否成功
    • (integer)0 → false 失敗
    • (integer)1 → true 成功
      ②表示執行結果值
    • (integer)3 → 3個
    • (integer)1 → 1個
  • 資料未獲取到
    (nil)等同於null
  • 資料最大儲存量
    512MB
  • 數值計算最大返回(java中的long的最大值)
    9223372036854775807(2^64-1)
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章