1. 程式人生 > >redis部分常用命令彙總

redis部分常用命令彙總

redis命令有很多,一般包括伺服器命令和一些具體資料結構的操作命令,這裡介紹了一些常用命令彙總,主要是通過查閱資料和結合個人總結,方便自己也方便他人查閱,如有不對之處還請多多指教。
啟動 redis 客戶端
開啟終端或在redis檔案路徑開啟命令列並輸入命令 redis-cli。該命令會連線本地的 redis 服務。
在這裡插入圖片描述
連線到本地的 redis 服務並執行 PING 命令,該命令用於檢測 redis 服務是否啟動。
在這裡插入圖片描述
啟動遠端 redis 服務
redis-cli -h host -p port -a password
退出客戶端
quit 或exit
檢查給定 key 是否存在


exists key
Redis 檢視所有的key
keys * 檢視所有的key(中間有空格)
exists name 檢視n是否有name這個key
randomkey 隨機返回資料庫裡面的一個key
rename key2 key3 重新命名key2 為key3
type key2 返回key的資料型別
刪除key name
del key
設定有效時間
expire key 100 設定key100秒過期
ttl key 獲取這個key的有效時長
pttl key查詢key 的生命週期(毫秒)
perisist key把指定key設定為永久有效
選擇資料庫
select 0 選擇到0資料庫 redis預設的資料庫是0~15一共16個數據庫
move key 1 將當前資料庫中的key移動到其他的資料庫中,這裡就是把這個key從當前資料庫中移動到1中
清除所有庫所有key資料

flushall 清除所有庫所有key資料
清除單個庫所有key資料
flushdb 刪除當前選擇資料庫中的所有key,清除單個庫所有key資料
字串型別的操作命令
 (1)set key value [ex 秒數] [px 毫秒數] [nx/xx]  
      如果ex和px同時寫,則以後面的有效期為準
      nx:如果key不存在則建立
      xx:如果key存在則修改其值
 (2)get key:取值
 (3)mset key1 value1 key2 value2 一次設定多個值
 (4)mget key1 key2 :一次獲取多個值
連結串列的操作命令
  Redis的list型別其實就是一個每個子元素都是string型別的雙向連結串列,連結串列的最大長度是2^32。list既可以用做棧,也可以用做佇列。list的pop操作還有阻塞版本,主要是為了避免輪詢
 (1)lpush key value:把值插入到連結串列頭部
 (2)rpush key value:把值插入到連結串列尾部
 (3)lpop key :返回並刪除連結串列頭部元素
 (4)rpop key: 返回並刪除連結串列尾部元素
 (5)lrange key start stop:返回連結串列中[start, stop]中的元素,lrange(‘key1’, 0, -1),返回名稱為key的list中start至end之間的元素(end為 -1 ,返回所有)
 (6)lrem key count value:從連結串列中刪除value值,刪除count的絕對值個value後結束
   count > 0 從表頭刪除  count < 0 從表尾刪除  count=0 全部刪除
 (7)ltrim key start stop:剪下key對應的連結,切[start, stop]一段並把改制重新賦給key
 (8)lindex key index:返回index索引上的值
 (9)llen key:計算連結串列的元素個數
 (10)linsert key after|before search value:在key 連結串列中尋找search,並在search值之前|之後插入value
hashes型別及操作命令

  Redis hash 是一個string型別的field和value的對映表,它的新增、刪除操作都是O(1)(平均)。hash特別適用於儲存物件,將一個物件儲存在hash型別中會佔用更少的記憶體,並且可以方便的存取整個物件。
  配置: hash_max_zipmap_entries 64 #配置欄位最多64個
      hash_max_zipmap_value 512 #配置value最大為512位元組
 (1)hset myhash field value:設定myhash的field為value
 (2)hsetnx myhash field value:不存在的情況下設定myhash的field為value
 (3)hmset myhash field1 value1 field2 value2:同時設定多個field
 (4)hget myhash field:獲取指定的hash field
 (5)hmget myhash field1 field2:一次獲取多個field
 (6)hincrby myhash field 5:指定的hash field加上給定的值
 (7)hexists myhash field:測試指定的field是否存在
 (8)hlen myhash:返回hash的field數量
 (9)hdel myhash field:刪除指定的field
 (10)hkeys myhash:返回hash所有的field
 (11)hvals myhash:返回hash所有的value
 (12)hgetall myhash:獲取某個hash中全部的field及value
集合結構操作命令
  特點:無序性、確定性、唯一性
 (1)sadd key value1 value2:往集合裡面新增元素
 (2)smembers key:獲取集合所有的元素
 (3)srem key value:刪除集合某個元素
 (4)spop key:返回並刪除集合中1個隨機元素(可以坐抽獎,不會重複抽到某人)   
 (5)srandmember key:隨機取一個元素
 (6)sismember key value:判斷集合是否有某個值
 (7)scard key:返回集合元素的個數
 (8)smove source dest value:把source的value移動到dest集合中
 (9)sinter key1 key2 key3:求key1 key2 key3的交集
 (10)sunion key1 key2:求key1 key2 的並集
 (11)sdiff key1 key2:求key1 key2的差集
 (12)sinterstore res key1 key2:求key1 key2的交集並存在res裡 
有序集合操作命令
  概念:它是在set的基礎上增加了一個順序屬性,這一屬性在新增修改元素的時候可以指定,每次指定後,zset會自動按新的值調整順序。可以理解為有兩列的mysql表,一列儲存value,一列儲存順序,操作中key理解為zset的名字。
  和set一樣sorted,sets也是string型別元素的集合,不同的是每個元素都會關聯一個double型的score。sorted set的實現是skip list和hash table的混合體。
  當元素被新增到集合中時,一個元素到score的對映被新增到hash table中,所以給定一個元素獲取score的開銷是O(1)。另一個score到元素的對映被新增的skip list,並按照score排序,所以就可以有序地獲取集合中的元素。新增、刪除操作開銷都是O(logN)和skip list的開銷一致,redis的skip list 實現是雙向連結串列,這樣就可以逆序從尾部去元素。sorted set最經常使用方式應該就是作為索引來使用,我們可以把要排序的欄位作為score儲存,物件的ID當元素儲存。
 (1)zadd key score1 value1:新增元素
 (2)zrange key start stop [withscore]:把集合排序後,返回名次[start,stop]的元素 預設是升續排列 withscores 是把score也打印出來
 (3)zrank key member:查詢member的排名(升序0名開始)
 (4)zrangebyscore key min max [withscores] limit offset N:集合(升序)排序後取score在[min, max]內的元素,並跳過offset個,取出N個
 (5)zrevrank key member:查詢member排名(降序 0名開始)
 (6)zremrangebyscore key min max:按照score來刪除元素,刪除score在[min, max]之間
 (7)zrem key value1 value2:刪除集合中的元素
 (8)zremrangebyrank key start end:按排名刪除元素,刪除名次在[start, end]之間的
 (9)zcard key:返回集合元素的個數
 (10)zcount key min max:返回[min, max]區間內元素數量
如有不對歡迎指正,相互學習,共同進步。