Redis 入門指南(一)5大數據類型

        最近在學《Redis入門指南 (第2版)》,我個人平時也比較喜歡整理技術文檔,接下來就把我學習 Redis入門指南 做的記錄分享出來,以便以後查看和回顧。有錯誤的地方,還望大家批評指正,謝謝。

        pdf文檔鏈接:https://pan.baidu.com/s/1SxThSMvsEofs7HNNkntlRQ        提取碼:9fz1

        Redis教程

        Redis入門的其他博客鏈接如下,如果嫌麻煩的化,可以直接下載我的文檔:《Redis入門指南 (第2版)》整理出的Redis教程

        Redis 入門指南(二)進階

        Redis 入門指南(三)持久化

        Redis 入門指南(四)集羣

        Redis 入門指南(五)管理

1. 5大數據結構

        很多文章都會說,redis支持5種常用的數據類型,這其實是存在很大的歧義。redis裏存的都是二進制數據,其實就是字節數組(byte[]),這些字節數據是沒有數據類型的,只有把它們按照合理的格式解碼後,可以變成一個字符串,整數或對象,此時才具有數據類型。(摘至:微信公衆號中的文章 - 喫透了這些Redis知識點,面試官一定覺得你很NB

1.1 string 字符串

  1. set mset
  2. get mget
  3. incr,當鍵不存在時,初始爲0;incrby key increment,返回增加後的鍵的值
  4. decr decrby
  5. incrbyfloat key increment ,增加指定浮點數
  6. append key value,向尾部追加值,返回值的長度
  7. strlen key 獲取字符串長度
  8. getrange key start end 返回key中字符串值得子字符
  9. getset key value 設置新值,返回舊值
  10. 位操作
  11. setex key seconds value,設置key的過期時間
  12. setnx key value,只有key不存在時設置key的值

1.2 hash 散列

        String類型的field和value的映射表,hash特別適合用於存儲對象

  1. hset | hmset key field value []
  2. hget | hmget key field
  3. hgetall key
  4. hexists key field 判斷字段是否存在
  5. hsetnx key field value 當字段不存在時賦值
  6. hincrby key field value 增加數字
  7. hdel key field [field…] 刪除字段
  8. hkeys key;hvals key 只獲取字段名或字段值
  9. hlen key 獲得字段數量
  10. hincrby key field increment

1.3 list 列表

        簡單的字符串列表,按照插入順序排序。可以添加一個元素到列表的頭部(左邊)或者尾部(右邊);索引左邊從0開始,右邊從-1開始

  1. lpush rpush
  2. lrange key start stop;0 -1 獲取所有
  3. lpop rpop
  4. llen 列表元素個數
  5. lrem key count value,刪除列表中前count個值爲value 的元素
  6. lindex key index 獲取指定索引的元素值,下標從0 開始
  7. lset key index value 設置指定索引的元素值
  8. ltrim key start end 保留列表指定片段
  9. linsert key before|after pivot value,在指定元素povit的前面或者後面插入元素
  10. rpoplpush 將元素從一個列表轉換到另一個列表(彈出一個元素)

1.4 set 集合

        String類型的無序集合,集合成員是唯一的。

  1. sadd | srem key member
  2. smembers key 獲取集合中的所有元素
  3. sismember key member 判斷元素是否在集合中
  4. 集合間運算
    • sdiff key [key...],差集
    • sinter key [key...],交集
    • sunion key [key...],並集
  5. scard 獲得集合中元素個數
  6. sdiffstore | sinterstore | sunoinstore destination key [key ...],進行集合運算並將結果存儲
  7. srandmember key [count] 隨機獲取集合中的元素
  8. spop 隨機彈出一個元素
  9. srem key member1 member2,移除集合中一個或多個元素
  10. smove source destination member,將member元素從source集合移動到destination集合

1.5 zset|sorted set 有序集合

        有序集合和無序集合一樣也是String類型元素的集合,且不允許重複的成員;不同的是每個元素都會關聯一個double類型的分數,redis正是通過分數來爲集合中的成員進行從小到大的排序;有序集合的成員是唯一的,但分數(score)卻可以重複

  1. zadd key score member [score member],增加元素,也可以用該命令修改分數
  2. zscore key member 獲得元素的分數
  3. 獲得排序在某個範圍的元素列表
    1. zrange key start stop [withscores]  start|stop都是索引,從0開始。升序
  4. zrevrange key start stop [withscores] 降序
  5. zrangebyscore key min max [withscores] [limit offset count] 獲取指定分數範圍的元素(包括min和max)
  6. zincrby key increment member 增加某個元素的分數
  7. zcard key 獲得集合中元素的數量
  8. zcount key min max 獲得指定分數範圍內的元素個數
  9. zrem key member [member...] 刪除一個或多個元素
  10. zremrangebyrank key start stop  按照排名範圍刪除元素 [start, stop]
  11. zremrangebyscore key min max 按照分數範圍刪除元素
  12. 獲的元素的排名
    1. zrank key member
    2. zrevrank key member
  13. 有序集合的交集

1.6 其他命令

  1. keys pattern 獲得複合規則的鍵名列表 keys * 獲取所有鍵
  2. exists key 判斷一個鍵是否存在
  3. del key 刪除鍵
  4. type key 獲得鍵值的數據類型
  5. flushdb 清除當前庫中的所有key
  6. flushall 刪除所有數據庫的所有key
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章