Redis 資料型別及其使用場景 String 篇

輕描淡寫發表於2020-06-06

String型別的基本操作

  • 新增/修改資料
    set key value
127.0.0.1:6379> set name zhangsan
OK
  • 獲取資料
    get key
127.0.0.1:6379> get name
"zhangsan"
  • 刪除資料
  127.0.0.1:6379> del name
  (integer) 1
  • 新增修改多個資料
mset name zhangsan age 20
  • 獲取多個資料
127.0.0.1:6379> mget name age
1) "zhangsan"
2) "20"
  • 獲取資料字元個數
127.0.0.1:6379> strlen name
(integer) 8
  • 在資料後面追加資訊(存在就追加,不存在就建立)
127.0.0.1:6379> append name hehe
(integer) 12
127.0.0.1:6379> get name
"zhangsanhehe"
127.0.0.1:6379> 

String型別的擴充套件操作

隨著應用執行中,我們的資料量會越來越大,我們不能讓資料都在一張表裡面,這樣會影響資料庫的查詢效率,這個時候我們就需要把一張大表切割成多張小表,這就是在大中型應用中使用的基本操作,分表。但是將一張表分成多個表之後讓它們自己控制自己的主鍵id自增肯定是不行的,比如會出現多個重複id的資料,這個時候可以使用redis來解決id重複的問題。

解決方案

  • 設定資料增加指定的值

      127.0.0.1:6379> set number 1
     OK
     127.0.0.1:6379> incr number
     (integer) 2
     127.0.0.1:6379> 
    

    string在redis內部儲存預設是一個字串,當遇到增/減,如incr/decr 等操作時會轉換成數值進行運算,redis的所有操作都是原子性的,採用單執行緒執行所有任務,命令都是一個個執行的,無需考慮併發帶來的影響

應用場景: 1.微信投票限制每個號碼在10小時內只能投一次票。2.熱門商品維持三天熱門自動取消熱門。

解決方案

  • 設定資料的生命週期

    Setex 命令為指定的 key 設定值及其過期時間。如果 key 已經存在, SETEX 命令將會替換舊的值。

SETEX KEY_NAME TIMEOUT VALUE

    127.0.0.1:6379> setex tel 60 13888888888
    OK
    127.0.0.1:6379> get tel
    "13888888888"
    127.0.0.1:6379> get tel  //等待60s
    (nil)
    127.0.0.1:6379> 
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章