Redis基礎(chǔ)講解2(常用命令的使用)

1. redis的五大數(shù)據(jù)類型

  • String(字符串): String 是redis最基本的數(shù)據(jù)類型,一個(gè)key對(duì)應(yīng)一個(gè)value堰燎;String是二進(jìn)制安全的漱挚;’redis的String可以包含任何的數(shù)據(jù)(jpg圖像和序列化的對(duì)象等都可以包含)漂彤;注意:一個(gè)redis中的字符串value最多可以存512M
  • Hash(哈希,類似Map): redis hash是一個(gè)鍵值對(duì)集合灭将;是一個(gè)String類型的field和value的映射表 ,hash適合用于存儲(chǔ)對(duì)象后控;類似Java里面的Map<String,Object>
  • List(列表): redis列表是簡(jiǎn)單的字符串列表庙曙,按照插入的順序排序,可以添加一個(gè)元素到列表的頭或者尾(注意:列表的底層是鏈表
  • Set(集合): Set是String類型的無序無重復(fù)的集合浩淘。他是通過HashTable實(shí)現(xiàn)的捌朴。
  • Zset(sorted set: 有序集合): 和Set一樣無重復(fù)集合吴攒,不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double類型的分?jǐn)?shù)score;redis正式通過分?jǐn)?shù)為集合中的成員進(jìn)行從小到大的排序砂蔽。Zset的成員是唯一的洼怔,但score卻是可以重復(fù)的。

2. redis鍵(key)

  • keys *: 列出所有的key
  • exists key : 判斷某個(gè)key是否存在
  • move key db:將某個(gè)key移動(dòng)到某個(gè)庫去左驾,例如move hello 7 將key為hello的這個(gè)key 移動(dòng)到第8號(hào)庫镣隶。
  • expire key 秒鐘 :為給定的key設(shè)置過期時(shí)間
  • ttl key:查看還有多少秒過期(-1表示永不過期,-2表示已過期)
  • type key:查看key是什么類型
  • del key:刪除key

3. redis字符串(String:?jiǎn)沃祮蝪alue)

  • set key value:設(shè)置key什荣;
    get key :獲取key矾缓;
    del key: 刪除key;
    append key value: 追加稻爬;
    strlen key: 獲取key的長(zhǎng)度
  • incr key:值為數(shù)字的value+1;
    decr key:值為數(shù)字的value-1;
    incrby key 增長(zhǎng)值:值為數(shù)字的value+增長(zhǎng)值;
    decrby key 增長(zhǎng)值:值為數(shù)字的value-增長(zhǎng)值;
    注意:如果value不是數(shù)字嗜闻,那么執(zhí)行這四個(gè)命令將報(bào)錯(cuò)
  • getrange:獲取指定區(qū)間的字符串;如getrange key 0 -1: 表示獲取key對(duì)應(yīng)的value與get key一樣桅锄,getrange key 0 3則是獲取這個(gè)key對(duì)應(yīng)的value的0-3個(gè)字符琉雳,包括第三個(gè),也就是說輸出的是4個(gè)字符友瘤;
    setrange: 用來替換字符翠肘;如setrange key 0 111: 表示從0個(gè)位置開始替換value的值,替換前三個(gè)為111辫秧。如果此key的value是qwert束倍,那么執(zhí)行了setrange key 0 111命令以后value就變成了 111rt。
  • setex key 秒 value : 設(shè)置key的同時(shí)為其設(shè)置過期時(shí)間盟戏;如setex abc 10 sssss設(shè)置key為abc绪妹,value為sssss的數(shù)據(jù)過期時(shí)間為10秒鐘
    setnx key value: 如果key不存在則插入key和value,如果key存在則不進(jìn)行插入柿究,防止覆蓋
  • mset key1 value1 key2 value2 key3 value3 ...批量設(shè)置key和value的值
    mget key1 key2 key3...批量獲取key的值
    msetnx key1 value1 key2 value2 key3 value3 ...如果有一個(gè)key已經(jīng)存在邮旷,那么這個(gè)命令將不會(huì)把數(shù)據(jù)插進(jìn)去,如果key都不存在才會(huì)把所有的都插進(jìn)去蝇摸。

4. redis列表(List :?jiǎn)沃刀鄓alue)

  • lpush key value1 value2 value3 ... valuen 從左邊添加(先進(jìn)后出)
    rpush key value1 value2 value3 ... valuen 從右邊添加(先進(jìn)先出)
    lrange key 0 -1 將key所有的value都列出婶肩,如果是lpush的,列出的順序應(yīng)該是valuen ... value3 value2 value1;如果是rpush 的貌夕,列出的順序?qū)⑹牵簐alue1 value2 value3 ... valuen

  • lpop key :取棧頂?shù)脑爻鰲?br> rpop key:取棧底的元素出棧

  • lindex key 下標(biāo):按照索引的下標(biāo)獲取元素律歼,從上往下獲取的

  • llen key:獲取這個(gè)key的value的長(zhǎng)度

  • lrem key n個(gè) value:刪除list中的n個(gè)value;如lrem list1 3 ttt就是將list1中value為ttt的刪除掉3個(gè)蜂嗽。如下圖:

    lrem.png

  • ltrime key 起始值 終止值 :將key中的value從起始值開始苗膝,到終止值結(jié)束截取出來重新賦值給key;如下圖:

    ltrime.png

  • rpoplpush 源list 目的list 將源list的棧底元素移動(dòng)到目的list的棧頂中去,如下圖:

    rpoplpush .png

  • lset key index value 給index位置的值重新賦值為value

  • linsert key before/after value 值 :在value前面或者后面插入一個(gè)值

5. redis集合(Set:?jiǎn)沃刀鄓alue)

  • sadd key value1 value2 value3 ... valuen 新增set集合(重復(fù)的數(shù)據(jù)會(huì)過濾掉)
    smembers key 查看所有的value
    sismember key value: 在key這個(gè)集合中是否存在value這個(gè)值
  • scard key: 獲取集合里面的元素個(gè)數(shù)
  • srem key value : 刪除集合中的某個(gè)value
  • srandmember key :整數(shù)n:在key這個(gè)集合中隨機(jī)的出n個(gè)value(用來抽獎(jiǎng))
  • spop key :隨機(jī)出棧
  • smove key1 key2 key1里面的某個(gè)值:將key1里面的某個(gè)值移到key2中去
  • sdiff key1 key2 : 獲取key1和key2 的差集(在key1中并且不在key2中的值)
  • sinter key1 key2: 獲取key1和key2的交集(在key1中并且又在key2中的值)
  • sunion key1 key2: 獲取key1和key2的并集(在key1中或者在key2中的值)

6. redis哈希(hash:KV模式不變辱揭,但是V是一個(gè)鍵值對(duì)《重要》)

  • hset key field value;:新增key下面的field下的value值
    hget key field:獲取key下面的field的值
    hmset key field value [file value ....]:批量新增key下面的field的值
    hmget key field [field ...] : 批量獲取多個(gè)key
    hgetall key:獲取key下面的所有值
    hdel key field [field ...]:刪除key下面的field离唐,可以刪除多個(gè);如下圖:
    set1.png
  • hlen key 獲取這個(gè)這個(gè)key有多少個(gè)屬性
  • hexists key field: 判斷這個(gè)field是否在這個(gè)key里面
  • hkeys key:列出key下的所有field
  • hvals key:列出key下所有的value
  • hincrby key field 整數(shù)n :給field的value增加n(只能給整數(shù)遞增)
  • hincrbyfloat key field 小數(shù)n:給field的value增加小數(shù)n(只能給小數(shù)增加)
  • hsetnx key field value : 給key增加一個(gè)不存在的field问窃,如果存在此field亥鬓,將不能新增,可以防止覆蓋

7. redis有序集合Zset(sorted set:在set的基礎(chǔ)上加了一個(gè)score值)

  • zadd key score value[score value]: 新增一個(gè)zset集合域庇,score是排序的值
  • zrange key 0 -1: 查詢所有的value值
  • zrange key 0 -1 withscores : 查詢所有value并且攜帶score
  • zrangebyscore key min max: 查詢score在min 和max之間的所有value嵌戈,包含min和max
  • zrangebyscore key (min (max加了'('這個(gè)符號(hào)后,就是不包含
  • zrangebyscore key min max limit offset count:表示score在min和max之前的并且從offset開始查詢count條听皿,limit相當(dāng)于mysql的分頁
  • zrem key value:刪除value這個(gè)元素
  • zcard key: 統(tǒng)計(jì)value的個(gè)數(shù)
  • zcount key min max :統(tǒng)計(jì)在min-max區(qū)間的個(gè)數(shù)
  • zrank key value : 獲得value的下標(biāo)值
  • zscore key value : 獲得value的score值
  • zrevrank key value: 逆序獲得下標(biāo)值
  • zrevrange key 0 -1:逆序輸出所有的value
  • zrevrangebyscore key max min:獲取min-max區(qū)間的所有value并倒序輸出
    如下圖所示:
    zset1.png
    zset2.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末熟呛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子尉姨,更是在濱河造成了極大的恐慌庵朝,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件又厉,死亡現(xiàn)場(chǎng)離奇詭異九府,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)覆致,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門侄旬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人煌妈,你說我怎么就攤上這事儡羔。” “怎么了璧诵?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵笔链,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我腮猖,道長(zhǎng),這世上最難降的妖魔是什么赞枕? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任澈缺,我火速辦了婚禮,結(jié)果婚禮上炕婶,老公的妹妹穿的比我還像新娘姐赡。我一直安慰自己,他們只是感情好柠掂,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布项滑。 她就那樣靜靜地躺著,像睡著了一般涯贞。 火紅的嫁衣襯著肌膚如雪枪狂。 梳的紋絲不亂的頭發(fā)上危喉,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音州疾,去河邊找鬼辜限。 笑死,一個(gè)胖子當(dāng)著我的面吹牛严蓖,可吹牛的內(nèi)容都是我干的薄嫡。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼颗胡,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼毫深!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起毒姨,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤哑蔫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后手素,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鸳址,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年泉懦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稿黍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡崩哩,死狀恐怖巡球,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情邓嘹,我是刑警寧澤酣栈,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站汹押,受9級(jí)特大地震影響矿筝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜棚贾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一窖维、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧妙痹,春花似錦铸史、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春崭篡,著一層夾襖步出監(jiān)牢的瞬間挪哄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工媚送, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留中燥,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓塘偎,卻偏偏與公主長(zhǎng)得像疗涉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子吟秩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

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

  • 轉(zhuǎn)自:http://bbs.redis.cn/forum.php?mod=viewthread&tid=481 p...
    木十2036閱讀 806評(píng)論 0 7
  • 最近學(xué)習(xí)redis咱扣,記錄一下 redis官網(wǎng):redis.io 中文官網(wǎng):http://www.redis.net...
    alexpdh閱讀 1,860評(píng)論 0 1
  • Redis::__construct構(gòu)造函數(shù)$redis = new Redis(); connect, open...
    bycall閱讀 1,409評(píng)論 0 2
  • 本文為筆者對(duì)在學(xué)習(xí)Redis過程中所收集資料的一個(gè)總結(jié),目的是為了以后方便回顧相關(guān)的知識(shí),大部分為非原創(chuàng)內(nèi)容涵防。特此...
    EakonZhao閱讀 14,416評(píng)論 0 9
  • phpredis是php的一個(gè)擴(kuò)展Redis::__construct構(gòu)造函數(shù)$redis = new Redis...
    hello大象閱讀 762評(píng)論 0 2