3、Redis數(shù)據(jù)類(lèi)型和常用命令

redis命令參考文檔

Redis的五大數(shù)據(jù)類(lèi)型
  • String(字符串)
    string是redis最基本的類(lèi)型秆乳,你可以理解成與Memcached一模一樣的類(lèi)型缀程,一個(gè)key對(duì)應(yīng)一個(gè)value诲泌。
    string類(lèi)型是二進(jìn)制安全的妻坝。意思是redis的string可以包含任何數(shù)據(jù)伸眶。比如jpg圖片或者序列化的對(duì)象 。
    string類(lèi)型是Redis最基本的數(shù)據(jù)類(lèi)型刽宪,一個(gè)redis中字符串類(lèi)的value最大是512M
  • Hash(哈希)
    Redis hash 是一個(gè)鍵值對(duì)集合厘贼。
    Redis hash是一個(gè)string類(lèi)型的field和value的映射表,hash特別適合用于存儲(chǔ)對(duì)象圣拄。
    類(lèi)似Java里面的Map<String,Object>
  • List(列表)
    Redis 列表是簡(jiǎn)單的字符串列表嘴秸,按照插入順序排序。你可以添加一個(gè)元素導(dǎo)列表的頭部(左邊)或者尾部(右邊)庇谆。
    它的底層實(shí)際是個(gè)鏈表岳掐。
  • Set(集合)
    Redis的Set是string類(lèi)型的無(wú)序集合。它是通過(guò)HashTable實(shí)現(xiàn)實(shí)現(xiàn)的饭耳,
  • zset(sorted set:有序集合)
    Redis zset 和 set 一樣也是string類(lèi)型元素的集合,且不允許重復(fù)的成員岩四。
    不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double類(lèi)型的分?jǐn)?shù)。
    redis正是通過(guò)分?jǐn)?shù)來(lái)為集合中的成員進(jìn)行從小到大的排序哥攘。zset的成員是唯一的,但分?jǐn)?shù)(score)卻可以重復(fù)。
關(guān)于key的常用命令
  • keys key規(guī)則:查看當(dāng)前數(shù)據(jù)庫(kù)符合規(guī)則的所有的key
  • exists key的名字:判斷某個(gè)key是否存在當(dāng)前數(shù)據(jù)庫(kù)
  • move key db:從當(dāng)前數(shù)據(jù)庫(kù)移除該key到指定數(shù)據(jù)庫(kù)中材鹦,成功則返回1逝淹,失敗則返回0
  • expire key 秒數(shù):為指定的key設(shè)置過(guò)期時(shí)間
  • ttl key:查看還有多少秒過(guò)期,-1表示永不過(guò)期桶唐,-2表示已過(guò)期/不存在栅葡,數(shù)字則表示還有多少秒過(guò)期
  • type key:查看指定的key的類(lèi)型
  • del key:刪除指定的key
    key相關(guān)命令
關(guān)于string類(lèi)型的value的常用命令

單key單value

  • set/get/del/append/strlen:添加、獲取尤泽、刪除欣簇、追加、長(zhǎng)度

  • Incr/decr/incrby x/decrby x:加1坯约、減1熊咽、加N、減N(字符串內(nèi)容是數(shù)字才可使用)

  • getrange n m /setrange n m:獲取指定區(qū)間范圍內(nèi)的值闹丐,類(lèi)似between......and的關(guān)系横殴,從零到負(fù)一表示全部,如果范圍內(nèi)沒(méi)值卿拴,則返回空字符串""

  • setex(set with expire)鍵秒值:設(shè)置帶過(guò)期時(shí)間的key衫仑,動(dòng)態(tài)設(shè)置梨与。

    setex

  • setnx(set if not exist):在 key 不存在時(shí),設(shè)置 key 的值文狱。(如果key還有效存在粥鞋,則報(bào)錯(cuò))

    setnx

  • mset:同時(shí)設(shè)置一個(gè)或多個(gè) key-value 對(duì)

  • mget:同時(shí)獲取一個(gè)或多個(gè) key的值

  • msetnx:同時(shí)設(shè)置一個(gè)或多個(gè) key-value 對(duì),當(dāng)且僅當(dāng)所有給定 key 都不存在才成功

  • getset(先get再set):將給定 key 的值設(shè)為 value 瞄崇,并返回 key 的舊值(old value)呻粹。

    getset

string相關(guān)命令1

string相關(guān)命令2
關(guān)于list類(lèi)型的value的常用命令

單key多value

  • lpush/rpush/lrange n m /llen:從左邊增加、從右邊增加杠袱、遍歷獲取key的值尚猿、長(zhǎng)度計(jì)算

  • lpop/rpop:刪除列表左邊的值,并返回值楣富、刪除列表右邊的值凿掂,并返回值

  • lindex key index:通過(guò)索引獲取列表中的元素

  • lrem key n value:刪列表中n個(gè)value

    lrem

  • ltrim key 開(kāi)始index 結(jié)束index:截取指定范圍的值后再賦值給key

    ltrim

  • rpoplpush 源列表 目的列表:移除源列表右邊的元素,并把該元素添加到目的列表的左邊纹蝴,并返回目的列表的值

    rpoplpush

  • lset key index value:往list指定的index插入value

    lset

  • linsert key before/after 值1 值2:在list中庄萎,某個(gè)已有值1的前面/后面再添加指定的值2

    linsert

  • 性能總結(jié)
    list數(shù)據(jù)類(lèi)型耀怜,實(shí)際上是一個(gè)字符串鏈表蛙吏,left辽故、right都可以插入添加呜袁;
    如果鍵不存在昵宇,則創(chuàng)建新的鏈表捂蕴;
    如果鍵已存在形葬,則新增內(nèi)容竖幔;
    如果值全移除切黔,對(duì)應(yīng)的鍵也就消失了砸脊。
    鏈表的操作無(wú)論是頭和尾效率都極高,但假如是對(duì)中間元素進(jìn)行操作纬霞,效率就很差


    list相關(guān)命令1

    list相關(guān)命令2
關(guān)于set類(lèi)型的value的常用命令

單key多value(value唯一)

  • sadd key value/smembers key:添加凌埂、獲取

  • sismember key value1:查詢(xún)value1是否存在該key的value中,存在則返回1诗芜,不存在則返回0

  • scard key:獲取集合里元素個(gè)數(shù)

  • srem key value:刪除集合中的指定元素

  • srandmember key N:從集合中瞳抓,隨機(jī)取出N個(gè)元素;如果超出元素最大個(gè)數(shù)伏恐,則全部去除孩哑;如果寫(xiě)值是負(fù)數(shù),比如-4脐湾,則去除4個(gè)臭笆,但是可能有重復(fù)值

  • spop key:隨機(jī)刪除一個(gè)元素,并返回

  • smove key1 key2 在key1里某個(gè)值:將key1中的指定值移動(dòng)到key2中

  • sdiff key1 key2:返回兩個(gè)集合的差集,存在key1集合中愁铺,而不存在key2集合中的元素

  • sinter key1 key2:返回兩個(gè)集合的交集

  • sunion key1 key2:返回兩個(gè)集合的并集

    set相關(guān)命令

關(guān)于hash類(lèi)型的value的常用命令

KV模式不變鹰霍,但V是一個(gè)鍵值對(duì)

  • hset/hget/hmset/hmget/hgetall/hdel:增加、獲取茵乱、批量增加茂洒、批量獲取、獲取全部瓶竭、刪除指定V

  • hlen key:查詢(xún)值的長(zhǎng)度

  • hexists key:判斷V中的key是否存在于hash中督勺,存在則返回1,否則返回0

  • hkeys/hvals:返回hash的V中所有的key斤贰、返回hash的V中所有的value
  • hincrby:給指定的hash的V中的數(shù)值型value增加對(duì)應(yīng)的整數(shù)值
  • hincrbyfloat:給指定的hash的V中的數(shù)值型value增加對(duì)應(yīng)的float值
  • hsetnx:給過(guò)期或不存在的key賦值智哀,存在則無(wú)效

    hash相關(guān)命令
關(guān)于zset(sorted set)類(lèi)型的value的常用命令

在set基礎(chǔ)上,加一個(gè)score值荧恍。之前set是k1 v1 v2 v3瓷叫,現(xiàn)在zset是k1 score1 v1 score2 v2

  • zadd key score1 value1 score2 value2...:增加zset

  • zrange n m withscores:獲取zset的值送巡,withscores是可選項(xiàng)摹菠,是否顯示值的score

  • zrangebyscore key (開(kāi)始score 結(jié)束score limit n m:根據(jù)score范圍取值,如果score前面加上(骗爆,則代表包含的意思次氨,否則是大于或小于;limit n m則代表起始index和步長(zhǎng)摘投;+inf代表是一直到最后的score

  • zrem key 某score下對(duì)應(yīng)的value值:刪除zset下某個(gè)value值

    zerm

  • zcard:獲取集合中元素個(gè)數(shù)

    zcard

  • zcount key score1 score2:獲取分?jǐn)?shù)區(qū)間內(nèi)元素個(gè)數(shù)煮寡,zcount key 開(kāi)始分?jǐn)?shù)區(qū)間 結(jié)束分?jǐn)?shù)區(qū)間

    zcount

  • zrank key values值:正序獲取value在zset中的下標(biāo)位置
    zrank
  • zscore key values:按照值獲得對(duì)應(yīng)的分?jǐn)?shù)
    zscore
  • zrevrank key values值:作用是逆序獲得下標(biāo)值

    zrevrank

  • zrevrange:根據(jù)索引區(qū)間,倒序獲取值

    zrevrange

  • zrevrangebyscore key 結(jié)束score 開(kāi)始score:注意這里的分?jǐn)?shù)是反著寫(xiě)的犀呼,根據(jù)倒序的分?jǐn)?shù)獲取值

    zrevrangebyscore

zset相關(guān)命令1

zset相關(guān)命令2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末洲押,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子圆凰,更是在濱河造成了極大的恐慌,老刑警劉巖体箕,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件专钉,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡累铅,警方通過(guò)查閱死者的電腦和手機(jī)跃须,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)娃兽,“玉大人菇民,你說(shuō)我怎么就攤上這事。” “怎么了第练?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵阔馋,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我娇掏,道長(zhǎng)呕寝,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任婴梧,我火速辦了婚禮下梢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘塞蹭。我一直安慰自己孽江,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布番电。 她就那樣靜靜地躺著岗屏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪钧舌。 梳的紋絲不亂的頭發(fā)上担汤,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音洼冻,去河邊找鬼崭歧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛撞牢,可吹牛的內(nèi)容都是我干的率碾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼屋彪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼所宰!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起畜挥,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤仔粥,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后蟹但,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體躯泰,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年华糖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了麦向。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡客叉,死狀恐怖诵竭,靈堂內(nèi)的尸體忽然破棺而出话告,到底是詐尸還是另有隱情,我是刑警寧澤卵慰,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布沙郭,位于F島的核電站,受9級(jí)特大地震影響呵燕,放射性物質(zhì)發(fā)生泄漏棠绘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一再扭、第九天 我趴在偏房一處隱蔽的房頂上張望氧苍。 院中可真熱鬧,春花似錦泛范、人聲如沸让虐。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)赡突。三九已至,卻和暖如春区赵,著一層夾襖步出監(jiān)牢的瞬間惭缰,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工笼才, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留漱受,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓骡送,卻偏偏與公主長(zhǎng)得像昂羡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子摔踱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容