redis命令

概述

Redis的鍵值可以使用物種數(shù)據(jù)類型:字符串抄淑,散列表,列表馋记,集合号坡,有序集合。本文詳細介紹這五種數(shù)據(jù)類型的使用方法梯醒。本文命令介紹部分只是列舉了基本的命令宽堆,至于具體的使用示例,可以參考Redis官方文檔:Redis命令大全

字符串類型

字符串是Redis中最基本的數(shù)據(jù)類型茸习,它能夠存儲任何類型的字符串畜隶,包含二進制數(shù)據(jù)。可以用于存儲郵箱籽慢,JSON化的對象浸遗,甚至是一張圖片,一個字符串允許存儲的最大容量為512MB箱亿。字符串是其他四種類型的基礎跛锌,與其他幾種類型的區(qū)別從本質上來說只是組織字符串的方式不同而已。

基本命令

字符串操作

  • SET 賦值届惋,用法: SET key value
  • GET 取值髓帽,用法: GET key
  • INCR 遞增數(shù)字,僅僅對數(shù)字類型的鍵有用脑豹,相當于Java的i++運算郑藏,用法: INCR key
  • INCRBY 增加指定的數(shù)字,僅僅對數(shù)字類型的鍵有用晨缴,相當于Java的i+=3译秦,用法:INCRBY key increment峡捡,意思是key自增increment击碗,increment可以為負數(shù),表示減少们拙。
  • DECR 遞減數(shù)字稍途,僅僅對數(shù)字類型的鍵有用,相當于Java的i–砚婆,用法:DECR key
  • DECRBY 減少指定的數(shù)字械拍,僅僅對數(shù)字類型的鍵有用,相當于Java的i-=3装盯,用法:DECRBY key decrement坷虑,意思是key自減decrement,decrement可以為正數(shù)埂奈,表示增加迄损。
  • INCRBYFLOAT 增加指定浮點數(shù),僅僅對數(shù)字類型的鍵有用账磺,用法:INCRBYFLOAT key increment
  • APPEND 向尾部追加值芹敌,相當于Java中的”hello”.append(“ world”),用法:APPEND key value
  • STRLEN 獲取字符串長度垮抗,用法:STRLEN key
  • MSET 同時設置多個key的值氏捞,用法:MSET key1 value1 [key2 value2 ...]
  • MGET 同時獲取多個key的值,用法:MGET key1 [key2 ...]

位操作

  • GETBIT 獲取一個鍵值的二進制位的指定位置的值(0/1)冒版,用法:GETBIT key offset
  • SETBIT 設置一個鍵值的二進制位的指定位置的值(0/1)液茎,用法:SETBIT key offset value
  • BITCOUNT 獲取一個鍵值的一個范圍內的二進制表示的1的個數(shù),用法:BITCOUNT key [start end]
  • BITOP 該命令可以對多個字符串類型鍵進行位運算,并將結果存儲到指定的鍵中捆等,BITOP支持的運算包含:OR,AND,XOR,NOT哼凯,用法:BITOP OP desKey key1 key2
  • BITPOS 獲取指定鍵的第一個位值為0或者1的位置,用法:BITPOS key 0/1 [start楚里, end]

散列類型

散列類型相當于Java中的HashMap断部,他的值是一個字典,保存很多key班缎,value對蝴光,每對key,value的值個鍵都是字符串類型达址,換句話說蔑祟,散列類型不能嵌套其他數(shù)據(jù)類型。一個散列類型鍵最多可以包含2的32次方-1個字段沉唠。

基本命令

  • HSET 賦值疆虚,用法:HSET key field value
  • HMSET 一次賦值多個字段,用法:HMSET key field1 value1 [field2 values]
  • HGET 取值满葛,用法:HSET key field
  • HMGET 一次取多個字段的值径簿,用法:HMSET key field1 [field2]
  • HGETALL 一次取所有字段的值,用法:HGETALL key
  • HEXISTS 判斷字段是否存在嘀韧,用法:HEXISTS key field
  • HSETNX 當字段不存在時賦值篇亭,用法:HSETNX key field value
  • HINCRBY 增加數(shù)字,僅對數(shù)字類型的值有用锄贷,用法:HINCRBY key field increment
  • HDEL 刪除字段译蒂,用法:HDEL key field
  • HKEYS 獲取所有字段名,用法:HKEYS key
  • HVALS 獲取所有字段值谊却,用法:HVALS key
  • HLEN 獲取字段數(shù)量柔昼,用法:HLEN key

列表類型

列表類型(list)用于存儲一個有序的字符串列表,常用的操作是向隊列兩端添加元素或者獲得列表的某一片段炎辨。列表內部使用的是雙向鏈表(double linked list)實現(xiàn)的捕透,所以向列表兩端添加元素的時間復雜度是O(1),獲取越接近列表兩端的元素的速度越快。但是缺點是使用列表通過索引訪問元素的效率太低(需要從端點開始遍歷元素)蹦魔。所以列表的使用場景一般如:朋友圈新鮮事激率,只關心最新的一些內容。借助列表類型勿决,Redis還可以作為消息隊列使用乒躺。

基本命令

  • LPUSH 向列表左端添加元素,用法:LPUSH key value
  • RPUSH 向列表右端添加元素低缩,用法:RPUSH key value
  • LPOP 從列表左端彈出元素嘉冒,用法:LPOP key
  • RPOP 從列表右端彈出元素曹货,用法:RPOP key
  • LLEN 獲取列表中元素個數(shù),用法:LLEN key
  • LRANGE 獲取列表中某一片段的元素讳推,用法:LRANGE key start stop顶籽,index從0開始注暗,-1表示最后一個元素
  • LREM 刪除列表中指定的值燃异,用法:LREM key count value,刪除列表中前count個值為value的元素鲸匿,當count>0時從左邊開始數(shù)究驴,count<0時從右邊開始數(shù)镊绪,count=0時會刪除所有值為value的元素
  • LINDEX 獲取指定索引的元素值,用法:LINDEX key index
  • LSET 設置指定索引的元素值洒忧,用法:LSET key index value
  • LTRIM 只保留列表指定片段蝴韭,用法:LTRIM key start stop,包含start和stop
  • LINSERT 像列表中插入元素熙侍,用法:LINSERT key BEFORE|AFTER privot value榄鉴,從左邊開始尋找值為privot的第一個元素,然后根據(jù)第二個參數(shù)是BEFORE還是AFTER決定在該元素的前面還是后面插入value
  • RPOPLPUSH 將元素從一個列表轉義到另一個列表蛉抓,用法:RPOPLPUSH source destination

集合類型

集合在概念在高中課本就學過庆尘,集合中每個元素都是不同的,集合中的元素個數(shù)最多為2的32次方-1個芝雪,集合中的元素師沒有順序的减余。

基本命令

  • SADD 添加元素,用法:SADD key value1 [value2 value3 ...]
  • SREM 刪除元素惩系,用法:SREM key value2 [value2 value3 ...]
  • SMEMBERS 獲得集合中所有元素,用法:SMEMBERS key
  • SISMEMBER 判斷元素是否在集合中如筛,用法:SISMEMBER key value
  • SDIFF 對集合做差集運算堡牡,用法:SDIFF key1 key2 [key3 ...],先計算key1和key2的差集杨刨,然后再用結果與key3做差集
  • SINTER 對集合做交集運算晤柄,用法:SINTER key1 key2 [key3 ...]
  • SUNION 對集合做并集運算,用法:SUNION key1 key2 [key3 ...]
  • SCARD 獲得集合中元素的個數(shù)妖胀,用法:SCARD key
  • SDIFFSTORE 對集合做差集并將結果存儲芥颈,用法:SDIFFSTORE destination key1 key2 [key3 ...]
  • SINTERSTORE 對集合做交集運算并將結果存儲,用法:SINTERSTORE destination key1 key2 [key3 ...]
  • SUNIONSTORE 對集合做并集運算并將結果存儲赚抡,用法:SUNIONSTORE destination key1 key2 [key3 ...]
  • SRANDMEMBER 隨機獲取集合中的元素爬坑,用法:SRANDMEMBER key [count],當count>0時涂臣,會隨機中集合中獲取count個不重復的元素盾计,當count<0時售担,隨機中集合中獲取|count|和可能重復的元素。
    SPOP 從集合中隨機彈出一個元素署辉,用法:SPOP key

有序集合類型

有序集合類型與集合類型的區(qū)別就是他是有序的族铆。有序集合是在集合的基礎上為每一個元素關聯(lián)一個分數(shù),這就讓有序集合不僅支持插入哭尝,刪除哥攘,判斷元素是否存在等操作外,還支持獲取分數(shù)最高/最低的前N個元素材鹦。有序集合中的每個元素是不同的献丑,但是分數(shù)卻可以相同。有序集合使用散列表和跳躍表實現(xiàn)侠姑,即使讀取位于中間部分的數(shù)據(jù)也很快创橄,時間復雜度為O(log(N)),有序集合比列表更費內存莽红。

基本命令

  • ZADD 添加元素妥畏,用法:ZADD key score1 value1 [score2 value2 score3 value3 ...]
  • ZSCORE 獲取元素的分數(shù),用法:ZSCORE key value
  • ZRANGE 獲取排名在某個范圍的元素安吁,用法:ZRANGE key start stop [WITHSCORE]醉蚁,按照元素從小到大的順序排序,從0開始編號鬼店,包含start和stop對應的元素网棍,WITHSCORE選項表示是否返回元素分數(shù)
  • ZREVRANGE 獲取排名在某個范圍的元素,用法:ZREVRANGE key start stop [WITHSCORE]妇智,和上一個命令用法一樣滥玷,只是這個倒序排序的。
  • ZRANGEBYSCORE 獲取指定分數(shù)范圍內的元素巍棱,用法:ZRANGEBYSCORE key min max惑畴,包含min和max,(min表示不包含min航徙,(max表示不包含max如贷,+inf表示無窮大
  • ZINCRBY 增加某個元素的分數(shù),用法:ZINCRBY key increment value
  • ZCARD 獲取集合中元素的個數(shù)到踏,用法:ZCARD key
  • ZCOUNT 獲取指定分數(shù)范圍內的元素個數(shù)杠袱,用法:ZCOUNT key min max,min和max的用法和5中的一樣
  • ZREM 刪除一個或多個元素窝稿,用法:ZREM key value1 [value2 ...]
  • ZREMRANGEBYRANK 按照排名范圍刪除元素楣富,用法:ZREMRANGEBYRANK key start stop
  • ZREMRANGEBYSCORE 按照分數(shù)范圍刪除元素,用法:ZREMRANGEBYSCORE key min max讹躯,min和max的用法和4中的一樣
  • ZRANK 獲取正序排序的元素的排名菩彬,用法:ZRANK key value
  • ZREVRANK 獲取逆序排序的元素的排名缠劝,用法:ZREVRANK key value
  • ZINTERSTORE 計算有序集合的交集并存儲結果,用法:ZINTERSTORE destination numbers key1 key2 [key3 key4 ...] WEIGHTS weight1 weight2 [weight3 weight4 ...] AGGREGATE SUM | MIN | MAX骗灶,numbers表示參加運算的集合個數(shù)惨恭,weight表示權重,aggregate表示結果取值
  • ZUNIONSTORE 計算有序幾個的并集并存儲結果耙旦,用法和14一樣脱羡,不再贅述。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末免都,一起剝皮案震驚了整個濱河市锉罐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绕娘,老刑警劉巖脓规,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異险领,居然都是意外死亡侨舆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門绢陌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挨下,“玉大人,你說我怎么就攤上這事脐湾〕舭剩” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵秤掌,是天一觀的道長愁铺。 經常有香客問我,道長机杜,這世上最難降的妖魔是什么帜讲? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮椒拗,結果婚禮上,老公的妹妹穿的比我還像新娘获黔。我一直安慰自己蚀苛,他們只是感情好,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布玷氏。 她就那樣靜靜地躺著堵未,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盏触。 梳的紋絲不亂的頭發(fā)上渗蟹,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天块饺,我揣著相機與錄音,去河邊找鬼雌芽。 笑死授艰,一個胖子當著我的面吹牛,可吹牛的內容都是我干的世落。 我是一名探鬼主播淮腾,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼屉佳!你這毒婦竟也來了谷朝?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤武花,失蹤者是張志新(化名)和其女友劉穎圆凰,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體体箕,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡专钉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了干旁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驶沼。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖争群,靈堂內的尸體忽然破棺而出回怜,到底是詐尸還是另有隱情,我是刑警寧澤换薄,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布玉雾,位于F島的核電站,受9級特大地震影響轻要,放射性物質發(fā)生泄漏复旬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一冲泥、第九天 我趴在偏房一處隱蔽的房頂上張望驹碍。 院中可真熱鬧,春花似錦凡恍、人聲如沸志秃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浮还。三九已至,卻和暖如春闽巩,著一層夾襖步出監(jiān)牢的瞬間钧舌,已是汗流浹背担汤。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留洼冻,地道東北人崭歧。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像碘赖,于是被迫代替她去往敵國和親驾荣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內容

  • Redis命令操作詳解 一普泡、key pattern 查詢相應的key (1)redis允許模糊查詢key有3個通配...
    ham731閱讀 270評論 0 0
  • 轉載(https://www.cnblogs.com/it-cen/p/4297273.html) 一播掷、查詢相應的...
    JavaHub閱讀 154評論 0 0
  • Redis命令運行于redis服務器上,要在服務器上運行命令需要一個redis客戶端撼班,在安裝Redis安裝包時歧匈,我...
    第八共同體閱讀 230評論 0 0
  • redis的key名要區(qū)分大小寫,在redis中除了 和空格外砰嘁,其他的字符都可以做為key名件炉,且長度不做限制,不過...
    香山上的麻雀閱讀 491評論 0 2
  • 源地址:http://blog.csdn.net/gjanuary/article/details/5207699...
    Freeasthew_a098閱讀 1,535評論 0 6