redis學(xué)習(xí)筆記

keys

redis本質(zhì)上是一個(gè)key-value數(shù)據(jù)庫(kù)

  1. 設(shè)置:set key value
  2. 獲?。篻et key
  3. 判斷存在:exists key
  4. 刪除:del key del test:fan:age
  5. 重命名:rename oldkey newkey
  6. 數(shù)量:dbsize 返回?cái)?shù)據(jù)
  7. 獲取所有key(通配符):Keys test:*:age
    Keys test:?:age
  8. 清空:flushdb flushall
  9. 設(shè)置有效時(shí)間:expire test:fan:age 30
  10. 查詢有效時(shí)間:ttl test:fan:age

String類型

  1. 設(shè)置:
    set key value
    setnx ky value(nx是not exist)
    mset key1 value1 keyN valueN
    msetnx key1 value1 keyN valueN
  2. 獲?。?br> get 不存在返回nil
    getset 設(shè)置key的值,并返回key的舊值,不存在返回nil
    mget
  3. 自增減:
    incr key 對(duì)key的值進(jìn)行++操作,返回新的值
    decr key
    incrby key integer 對(duì)key加上一個(gè)數(shù)值
    decrby key integer
  4. 截?。?br> substr key indexStart indexEnd 下標(biāo)從0開(kāi)始
  5. 追加:
    append key value

list類型

redis的list其實(shí)就是一個(gè)每個(gè)元素都是string 的雙向鏈表,所以push和pop的時(shí)間復(fù)雜度都是O(1)

  1. 添加
    lpush key string 在頭部添加
    rpush key string 在尾部添加
  2. 修改
    lset key index value 修改指定下標(biāo)的key的值
  3. 刪除
    lpop key 從頭部返回刪除
    rpop key 從尾部
    lrem key count value 刪除count個(gè)相同的value,count為0刪除全部
    blpop key ...keyN timeout
    brpop 從尾部刪除
  4. 獲取
    lrange key indexStart indexEnd
  5. 數(shù)量
    llen key 返回key對(duì)應(yīng)的list長(zhǎng)度
  6. 截取
    ltrim key start end
  7. 轉(zhuǎn)移
    rpoplpush key1 key2 從key1尾部移到key2頭部

set集合

redis的set就是String的無(wú)序集合,通過(guò)hashtable實(shí)現(xiàn)

  1. 添加
    sadd key member
  2. 刪除
    srem key member 移除指定的元素
    spop key 刪除并返回一個(gè)隨機(jī)的
  3. 獲取
    smembers key 返回所有
    srandmember 隨機(jī)取一個(gè)不刪除
  4. 判斷存在
    sismember key member
  5. 數(shù)量
    scard key 返回元素個(gè)數(shù)
  6. 轉(zhuǎn)移
    smove srckey dstkey member
  7. 取交集
    sinter key1 key2 keyN
    sinterstore dstkey key1 keyN 將交集存在dstkey
  8. 取并集
    sunion key1 key2 keyN
    sunionstore dstkey key1 keyN 將并集存在dstkey
  9. 取差集
    sdiff key1 key2 keyN
    sdiffstore dstkey key1 keyN 將差集存在dstkey

有序set類型

和set一樣,不同的是每個(gè)元素關(guān)聯(lián)一個(gè)double類型的score,根據(jù)score排序,sorted set的實(shí)現(xiàn)由skip list和hashtable

  1. 添加
    zadd key score member
  2. 刪除
    zrem key member
    zremrangebyrank key min max
    zremrangebyscore key min max 刪除集合score在給定區(qū)間的元素
  3. 獲取
    zrange key start end
    zrevrange key start end 按score的逆序
    zrangebyscore key min max
  4. 判斷存在
    zrank key member 返回下標(biāo)
    zrerank key member 返回逆序的下標(biāo)
  5. 數(shù)量
    zcard key 總數(shù)
    zcount key min max 區(qū)間的數(shù)量
  6. 修改
    zincrby key incr member 增加member的score值并排序

hash類型

redis的hash是一個(gè)string類型的field和value的映射表,hash特別適合存儲(chǔ)對(duì)象,

  1. 設(shè)置:
    hset key field value
    hmset key field1 value1 field2 value2
  2. 獲?。?br> hget key field
    hmget key field1 field2
  3. 判斷存在
    hexists key field
  4. 刪除
    hdel key field
  5. 查找
    hkeys key 返回所有 field
    hvals key 返回所有的value
    hgetall key 返回所有field和value
  6. 數(shù)量
    hlen key
  7. 值加減
    hincrby key field integer 將指定的hash field加上定值

如果文章對(duì)你有幫助,請(qǐng)去我的博客留個(gè)言吧! 我的博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容