1. 程式人生 > >Redis API的使用與理解

Redis API的使用與理解

count before 位置 setnx ash 後進先出 圖片 給定 []

一、Redis 基礎:

  1、通用命令:

    keys [pattern]:

      keys * #遍歷所有key;keys he* #以‘he‘開頭的key;

      keys he[a-e]* #以‘he’開頭第三個字母是a-e之間;

      keys ph? #‘?‘代碼一位,以ph開頭且字母是三位的key  

    dbsize:計算key的總數

    exists key :檢查key是否存在(存在返回1,不存在返回0)

    del key [key...]:刪除key(返回執行成功的條數)

    expire key seconds:設置key在seconds秒後過期

    ttl key:查看key剩余的過期時間

    persist key:去掉key的過期時間

    type key :返回key的類型

  2、數據結構:

技術分享圖片

二、Redis API的使用:

  1、String:

    set key value     設置鍵值對

    setnx key value    key不存在才設置

    set key value xx   key存在才設置

    get key         通過key獲取value

    mget        批量獲取,時間復雜度 o(n)

    mset        批量設置,時間復雜度o(n)

    getset key value   設置新值並返回舊值

    append key value   在原有value上追加值

    strlen key       字符長度 

    keys *         獲取所有的key (支持通配符 :* ? [])

    del key [kel...]    刪除鍵值對

    incr key       對於整數value增加1

    incrby key num    對於整數value增加num

    decr key       對於整數value減少1

    decrby key num   對於整數value減少num

    incrbyfloat key num  對於浮點數value增加num

    getrange key start end   指定顯示的位置       

    setrange key offset value  指定位置修改 

  2、Hash:

    hset key field value  將哈希表key中的域field 的值設為value

    hget key field    返回哈希表key中給定域field的值

    hdel key field     刪除哈希表key中的fileld的值

    hgetall key      返回哈希表key中,所有的域和值

    hkeys key      返回哈希表key中所有的域

    hmset key field value [field value]  批量設置field-value對到哈希表key中 o(n)

    hmget key field [field]        批量獲取key中 field域的值 o(n)

    hexists key field   判斷哈希表key中是否有field

    hlen key       獲取哈希表key中field的數量 

    hvals key       返回哈希表key對應所有field的value

    hsetnx key field value 設置哈希表key對應field(存在,則失敗)的value 

    hincrby key field intCounter    哈希表key對應的field的value增加 intCounter,返回結果

    hincrbyfloat key feild floatCounter  哈希表key對應的field的value增加 floatCounter,返回結果         

  3、List:

    1、lpush key value [value...]    從列表左端插入值(1-N個)

    2、rpush key value [value...]    從列表右端插入值(1-N個)

    3、linsert key before|after value newValue  在列表指定的值前|後插入newValue 

    4、lrem key count value           根據count值,從列表中刪除所有value,count大於0從左到右,小於0從右到左,等於0刪除所有相等項;例如:lrem key -1 a 從右到左刪除 1 個相等的項

    5、ltrim key start end        按照索引範圍修剪列表

    6、lrange key start end        獲取列表指定索引範圍所有item等的項

    7、llen key              返回列表key的長度

    8、lpop key             將列表key最左端的元素彈出

    9、rpop key            將列表key最右端的元素彈出             

    10、lindex key index        獲取列表key指定的索引item

    11、lset key index newValue     設置列表key指定索引值為newValue

    12、blpop key timeout        阻塞左彈出,timeout是阻塞超時時間,timeout=0為永遠不阻塞             

    13、brpop             阻塞右彈出,timeout是阻塞超時時間,timeout=0為永遠不阻塞

  註:根據不同的業務需求有以下建議:

    1、lpush + lpop = stack (以棧的方式存取,後進先出)

    2、lpush + rpop = queue (以隊列的方式存取,先進先出)

    3、lpush + ltrim = capped conllection (以固定長度的列表存取)

    4、lpush + brpop = message queue (消息隊列) 

  4、Set:

    1、sadd key element        向集合key添加element(如果存在添加失敗)

    2、srem key element        將集合key中的element移除

    3、scard key             計算集合大小

    4、sismember key it         判斷it是否在集合中

    5、srandmember key count      從集合中隨機挑count個元素

    6、spop key             從集合中隨機彈出一個元素

    7、smembers key           獲取集合所有元素 

    8、sdiff key key [key...]        獲取差集

    9、sinter key key [key...]       獲取交集

    10、sunion key key [key...]       獲取並集

  5、zSet:

    1、zadd key score element      添加元素 

    2、zrem key element        刪除元素

    3、zscore key element        返回元素的score

    4、zincrby key increScore element  增加或減少元素的score

    5、zcard key            返回元素的總個數

    6、zrank key element        返回元素的排名位置(升序)

    7、zrange key start end withscores  返回指定索引範圍的升序元素[score]

    8、zrangebyscore key min max withscores   返回指定score範圍的升序元素

    9、zcount key min max        返回有序集合內在指定score範圍內的個數

    10、zremrangebyrank key start end  刪除指定排名內的升序元素

    11、zremrangebyscore key min max  刪除指定分數內的升序元素

    12、zrevrank            返回元素的排名位置(降序)      

    13、zrevrange            返回指定索引範圍的降序元素[score]

    14、zrevrangebyscore        返回指定score範圍的降序元素

    15、zinterstore            交集

    16、zuninstore            並集

Redis API的使用與理解