Redis | Redis五大常用數據類型及命令 一、五大常用數據類型 二、常用命令

一、五大常用數據類型

String、Hash、List、Set、Zset

  • Hash是一個鍵值對集合,適合用於存儲對象,類似於Java裏面的Map
  • List是簡單的字符串列表,可以添加一個元素到列表的頭部或者尾部,底層實際是個鏈表
  • Zset與set相比的區別是每個元素都會關聯一個double類型的分數,通過分數來爲集合中的成員進行從小到大的排序,Zset的成員是唯一的,但分數卻可以重複

二、常用命令

1、key

  • keys *:查詢所有key
  • exists key(名字):查看某個key是否存在
  • move key(名字) db:移除db庫的某個key
  • expire key(名字) seconds(秒):爲給定的key設置過期時間
  • ttl key(名字):查詢還有多少秒過期,-1表示永不過期,-2表示已過期
  • type key(名字):查看某個key是什麼類型

2、字符串(String)

  • set k1 v1/get k1:設置k1爲v1 / 獲取k1
  • del s1:刪除s1
  • append k1 v1:在k1後面插入v1(原來的值還在)
  • strlen k1:獲取k1的長度
  • incr k1/decr k1/incrby k1 num/decrby k1 num:遞增/遞減/增num/減num(必須要是數字)
  • getrange k1 s e:獲取k1中s到e範圍的值,如果是-1則到尾部
  • setrange k1 s value:在索引值爲s開始的值覆蓋爲value(範圍覆蓋)
  • setex k1 s v:爲k1賦值v並設置能存活s秒
  • setnx k1 v1:如果不存在才設置值,存在則設置失敗
  • mset k1 v1 k2 v2....:批量設值
    例如mset k1 v1 k2 v2 k3 v3,給k1,k2,k3設值爲v1,v2,v3
  • mget k1(鍵) k2(鍵)...:批量獲取
    例如mget k1 k2 k3,分別獲取key爲k1,k2,k3的值
  • msetnx k1 v1 k2 v2...:批量設值,但是如果其中有一個已經存在,那則全部都不會設置成功

3、List

  • lpush 鍵 值1 值2...:在一個鍵爲list裏面插入值(後進先出),即放在頂部
  • lrange 鍵 [範圍]:在一個範圍內取出鍵的值
    例如lrange list01 0 3取出list01中0-3的值
  • rpush 鍵 值1 值2...:在一個鍵爲list裏面插入值(先進先出),即放在底部
  • lpop 鍵:彈出頂部的值
  • rpop 鍵:彈出底部的值
  • lindex 鍵 索引:按照索引下標獲得元素(從上到下)
    例如現在有一個list01是2,3,4。則lindex list01 2結果爲4,lindex list01 1結果爲3。
  • llen 鍵:獲取長度
  • lrem 鍵 n value:刪除n個value
    例如lrem list01 2 3意思是在list01中刪除2個value爲3的。
  • ltrim key sindex eindex:截取key中從sindex開始到eindex結束的值,再賦值給key
  • rpoplpush 源列表 目的列表:從源列表中的底部彈出一個值再放入目的列表的頂部
  • lset key index value:對key的索引爲index的值改爲value
  • linsert key before/after 值1 值2:在值1的前面/後面插入值2
    例如linsert list01 before x java在x的前面插入java

4、集合(Set)

  • sadd key value1 value2 value3:在key的集合中添加值(value1,value2,value3),值不允許重複
  • smembers key:取出key集合中的所有值
  • sismember key value:查看key集合中是否有值爲value的
  • scard key:獲取key集合中元素個數
  • srem key value1:刪除key集合中值爲value1的元素
  • srandmember key num:在key集合中隨機出num個數值
  • spop key:在key集合中隨機出棧
  • smove key1 key2 value:將key1裏的值爲value的賦給key2
  • 數學集合類:差集(sdiff)、交集(sinter)、並集(sunion)
    差集 set1 set2:在第一個set裏面而不在後面任何一個set裏面的值

5、Hash

  • hset 某個哈希 key1 value1:在某個哈希中插入一個鍵值對
  • hget 某個哈希 key1:在某個哈希中獲取鍵爲key1的值
  • hmset 某個哈希 key1 value1 key2 value2 ...:批量插入鍵值對
  • hmget 某個哈希 key1 key2 ...:批量獲取鍵值對
  • hgetall 某個哈希:獲取某個哈希裏面所有的鍵值對
  • hdel 某個哈希 key:刪除某個哈希裏面鍵爲key的值
  • hlen 某個哈希:獲取長度
  • hexists 某個哈希 key:查看某個哈希中是否存在鍵爲key的
  • hkeys 某個哈希:獲取某個哈希裏面所有的key
  • hvals 某個哈希:獲取某個哈希裏面所有的value
  • hincrby 某個哈希 key num:將某個哈希裏面鍵爲key的值遞增num
  • hincrbyfloat 某個哈希 key num:將某個哈希裏面鍵爲key的值遞增num(浮點數)
  • hsetnx 某個哈希 key value:如果不存在key才插入

6、Zset

在set基礎上加上一個score值,之前set是k1 v1 v2 v3,現在zset是k1 score1 v1 score2 v2。

  • zadd zset1 score1 value1 score2 value2 ...:在zset1中批量添加值。
  • zrange zset1 index end:從index到end獲取zset1中的所有值(沒有score),如果end是-1則表示所有
  • zrange zset1 index end withscores: 從index到end獲取zset1中的所有值(有score),如果end是-1則表示所有
  • zrangebyscore zset1 sscore escore:從zset1中獲取分數爲sscore到escore的值,如果在分數前加(則表示不包含,沒加則表示包含該分數,還可以加上limit index num從結果集裏面的第index個開始來截取num個
  • zrem zset1 某score下對應的value值:刪除元素
  • zcard zset1:獲取zset1的數量(值和分數是爲一體的,即只算一個)
  • zcount zset1 score區間:獲取zset在score區間內的數量
    例如zcount zset1 60 80獲取zset在60-80分裏面的數量
  • zrank zset1 value:獲取zset1的value對應的下標
  • zscore zset1 value:獲取zset1的value對應的分數
  • zrevrank zset1 value:逆序獲取zset1的value對應的下標
  • zrevrange zset1 s e:逆序獲取zset1從s到e的值,e如果爲-1表示獲取到結尾
  • zrevrangebycore zset1 score1 score2:逆序獲取zset1的分數範圍在score1到score2(score1大於score2)的值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章