Redis學習筆記:(一)基本數結構與操做

 Redis 數據類型結構redis

        

 

1. 字符串String

    經常使用操做命令以下:

        set  key  value  存入單個字符串鍵值對
        get  key  獲取單個字符串值
        mset key  value [key  value ...]  批量存入多個字符串鍵值對
        mget  key [key ...]   獲取多個字符串值
        del  key  [key  ...]   刪除鍵值對
        expire key  second  設置一個鍵的過時時間(秒)
        setnx  key  value  若是 key 不存在,至關於set命令, 若是 key 不存在,什麼也不作,setnx 其實是 「set if not exists」 的簡寫json

    原子加減:

         incr  key  將key中儲存的數字值加1,返回加1後的結果; 若是值不是數字,返回錯誤;key 不存在時,會建立一個key並返回1
         decr  key    將key中存儲的數字值減1,返回減1後的結果;key不存在時,會建立一個key,並返回-1
         incrby  key  increment    將key中存儲的值加上increment,返回相加後的結果
         decrby   key  decrement    將key中存儲的值減去decrement,返回相減後的結果數組

2. 數組List

       常見操做命令:緩存

        

        lpush  key  value    從左側向key對應的列表中加入一個或多個值
        rpush  key  value    從右側向key對應的列表中加入一個或多個值
        lpop  key    返回並刪除key對應列表的頭數據
        rpop  key    返回並刪除key對應列表的尾數據
        lrange  key  start  end    根據起止座標獲取 key 對應的 list 值
        llen  key    獲取 key 對應的 list 的長度 分佈式

3. 哈希表 Hash

    經常使用操做命令:

        hset  key  field  value    存儲一個哈希表 key  的鍵值
        hget  key  field    獲取哈希表 key  field 對應的鍵值
        hmset  key  field  value  [field  value ...]    批量存儲哈希表鍵值
        hmget  key  field  [field  ...]    批量獲取哈希表中 field 對應的鍵值
        hdel  key  field  [field ...]    刪除哈希表中 field 對應的鍵值
        hlen  key    獲取哈希表 key 中 field 的個數
        hgetall  key    獲取哈希表 key 中的全部鍵值
        hincrby  key  field  incrememt    增長哈希表 key 中 field 字段的 數值性能

4 集合Set

   經常使用操做命令:

        sadd  key  member [member ...]    往集合key中存入元素,元素存在則忽略
        smembers  key    獲取集合 key 中全部元素
        scard  key    獲取集合 key 中的元素個數
        srem  key  member  [member ...]    從集合key中刪除元素
        sismember  key  member    判斷 member 元素是否存在於集合 key 中
        srandmember  key  [count]    從集合 key 中隨機選出 count 個元素
        spop  key  [count]    從集合 key 中隨機取出 count 個元素,並刪除spa

   運算:

        sinter  key [key ...]    取交集
        sunion  key [key  ...]    取並集
        sdiff  key  [key ...]    取差集
        sinterstore  destination  key [key ...]    取交集,並將結果存入新集合 destination 中
        sunionstore  destination  key  [key ...]    取並集,並將結果存入新集合 destination 中
        sdiffstore  destination  key [key ...]    取差集,並將結果存入新集合 destination 中對象

5. 有序集合 Zset

    經常使用命令:

        zadd  key  score  member  [score member ...]    往有序集合 key 中添加帶分值元素
        zrange  key  start  end    返回有序集合 key 中指定範圍的元素,按 score 正序排列
        zrevrange  key  start  stop    返回有序集合 key 中指定範圍的元素,按 score 倒序排列
        zrem  key  member  [member ...]    從有序集合 key 中刪除元素
        zscore  key  member    返回有序集合 key 中元素 member 的分值
        zincrby  key  increment  member    爲有序集合 key 中元素 member 的分值加上 increment
        zcard  key    返回有序集合 key 中的元素的個數blog

6. 應用場景

  1. 對象緩存

    1)set   user:1   value( json 格式數據 )
    2)mset  user:1:name   zhangsan   user:1:age  23
    3)hmset  user  1:name  zhangsan  1:age  23  
  2. 分佈式鎖

    setnx  key  true   開始執行業務前,返回1 表示獲取鎖成功,不然失敗,
    setnx  key  true  ex  10  nx  ( 10 s 後過時)
    del  key 業務執行完後,釋放鎖
  3. 計數器

    文章閱讀數統計:
    新增閱讀  incr  article:readcount:{文章id}
    獲取數量  get   article:readcount:{文章id}
  4. 分佈式系統全局序列號

    incrby   orderId  3000,redis批量生產序列號提高性能
  5. 抽獎

    使用 set 集合 srandmember、spop
  6. 微博共同關注人

    使用 set 集合 運算
  7. 電商購物車

    key:用戶id(111),field:商品id(61234),value:商品數量 添加商品: hset  shopCart:111  61234  1 添加商品數量:hincrby  shopCart:111  61234    減小商品數量:hincrby  shopCart:111  61234   -1 商品總數:hlen  shopCart:111 刪除商品:hdel  shopCart:111  61234 獲取購物車全部商品:hgetall shopCart:111
相關文章
相關標籤/搜索