Redis經常使用五大數據類型

五大數據類型經常使用的命令(此處只介紹經常使用命令更多命令請參考https://www.redis.net.cn/tutorial/3505.html):

 Key(鍵):

  keys *             查看當前庫所有key名稱。
  exists key          判斷某個key是否存在。存在返回1,不存在返回0。
  move key db           把當前庫某個key移到指定庫。
  expire key second       爲指定的key設置過時時間,單位爲秒。
  ttl key            查看指定key還有多少秒過時,-1表示永不過時,-2表示已過時(若是過時該key會被移出庫)。
  type key             查看你的key是什麼數據類型。
  del [key...]          刪除指定key,可同時刪除多個。html

 


 

 1.string(字符串):

  string類型是redis最基本的數據類型,redis中一個字符串value最多能夠是512M。
  string類型是二進制安全的。意思是redis的string能夠包含任何數據。好比jpg圖片或者序列化的對象。java

 

  set        設置一個key-value。
  get        獲取一個key的value。
  del        刪除一個或多個key-value。
  append      對指定key的value追加值。
  strlen       獲取指定key的value的長度。
  incr        對指定key的value每次加1。 必定要是數字才能進行加減。
  decr       對指定key的value每次減1。 必定要是數字才能進行加減。
  incrby       對指定key的value每次加n(數量可指定)。 必定要是數字才能進行加減。
  decrby         對指定key的value每次減n(數量可指定)。 必定要是數字才能進行加減。
  getrange     獲取指定key的value的指定區間範圍內的值,相似於java的substring。
  setrange     設置指定key的value的指定區間範圍內的值,原區間範圍的值會被覆蓋。
  setex(set with expire)      設置一個key-value並指定該key的過時時間(秒)。
  setnx(set if not exist)      設置一個key-value,若是該key存在則不設置,若是不存在則設置。
  mset        設置一個或多個key-value。
  msetnx       設置一個或多個key-value,若是key都不存在則設置,若是其中有一個key存在則不設置。
  mget        獲取一個或多個key的value。
  getset         獲取一個key(key必須存在)並設置該key的值,返回原來的值。redis

 


 

 2.hash(哈希,相似java裏的Map):

  redis hash 是一個鍵值對集合。redis hash 是一個string類型的field和value的映射表,hash特別適合用於存儲對象。安全

  相似Java裏面的Map<String,Object>。KV模式不變,但V是一個鍵值對app

 

  hset      添加一個hash集合並往裏面添加一對KV。
  hget      獲取hash集合某個Key的數據。
  hmset     添加一個hash集合並往裏面添加N對KV。
  hmget     獲取hash集合N個Key的數據。
  hgetall     獲取hash集合所有的KV數據。
  hdel      移除hash集合中的N個Key。
  hlen      獲取hash集合中Key的數量。
  hexists     判斷hash集合中某個Key是否存在。
  hkeys     獲取hash集合所有Key。
  hvals     獲取hash集合所有Value。
  hincreby   給hash集合中的某個key加N。 必定要是數字才能加,加整數。
  hincrebyfloat 給hash集合中的某個key加N。 必定要是數字才能加,加整數或小數。
  hsetnx    添加一個hash集合並往裏面添加一對KV(若是key不存在則添加,存在則不添加)。大數據

 


 

 3.list(列表):

   redis list 列表是簡單的字符串列表,按照插入順序排序。你能夠添加一個元素到列表的頭部(左邊)或者尾部(右邊)。它的底層實際是個鏈表。spa

 

  說明:l(left)、r(right),將結構理解爲棧,l表示棧頂、r棧底。
  lpush      添加一個list列表,將一個或多個值插入到列表頭部,先進後出。
  rpush      添加一個list列表,將一個或多個值插入到列表尾部,先進先出。
  lrange      獲取list列表指定區間範圍內的值。
  lpop      移除list列表頂部元素(第一個元素),並返回被移除的元素。
  rpop      移除list列表底部元素(最後一個元素),並返回被移除的元素。
  lindex     按照頂部索引下標得到元素。
  llen      獲取list列表的長度。
  lrem      移除list列表N個value。(lrem key count value)。
  ltrim      截取list列表指定範圍內的值後再賦值給list列表(原值將被截取值覆蓋)。
  rpoplpush   將指定列表的底部元素移到目標列表的頂部。
  lset      設置列表指定下標的值。
  linsert    在指定列表的某個元素前面或後面添加元素。(linsert key before/after 列表中的元素 添加的元素)。.net

  list列表總結:
   它是一個字符串鏈表,left、right均可以添加。
   若是鍵不存在,建立新的鏈表。
   若是鍵已存在,新增內容。
   若是值全移除,對應的鍵也就消失了。
   鏈表的操做不管是頭和尾效率都極高,但假如是對中間元素進行操做,效率就比較低了。htm

 


 

 4.set(集合):

    redis set是string類型的無序集合。它是經過HashTable實現的。對象

 

  sadd        將一個或多個成員插入到set集合中。
  smembers     遍歷set集合。
  sismember      判斷指定元素是不是set集合的成員。
  scard        獲取set集合中元素的個數。
  srem        移除set集合中N個元素。
  srandmember    隨機獲取set集合中N個元素。
  spop        隨機移除set集合中N個元素並返回被移除的元素。
  smove       將指定集合中的某個元素移到目標集合中。
  sdiff        集合的減集。
  sinter        集合的交集。
  sunion      集合的並集。

 


 

 5.zset(sorted set:有序集合):

  redis zset 和 set 同樣也是string類型元素的集合,且不容許重複的成員。不一樣的是每一個元素都會關聯一個double類型的分數。
  redis正是經過分數來爲集合中的成員進行從小到大的排序。zset的成員是惟一的,但分數(score)卻能夠重複。

 

  zadd          將一個或多個成員插入到zset集合中。(zadd key 分數 值...)例如:[zadd zset1 80 zhangsan]。
  zrange         獲取zset集合指定區間範圍內的值(zrange key start stop [withscores])。加withscores可查看分數與值
  zrangebyscore       獲取zset集合指定分數範圍內的值(zrangebyscore key [(]min [(]max [limit offset count]),「(」表示不包含。
  zrem          移除zset集合中N個元素。
  zcard          獲取zset集合中元素的個數(不包含分數,分數和元素是一體的)。
  zcount        獲取zset集合指定分數範圍內的個數。
  zrank          獲取zset集合某個元素的下標。
  zscore         獲取zset集合某個元素對應的分數。
  zrevrank        逆序獲取zset集合某個元素的下標。
  zrevrange      逆序獲取zset集合指定區間範圍內的值。
  zrevrangebyscore    逆序獲取zset集合指定分數範圍內的值。

相關文章
相關標籤/搜索