Redis幾種常用數(shù)據(jù)類型的命令及使用場(chǎng)景

KEY常用命令

????exists key 測(cè)試指定key是否存在

????del key1 key2? 刪除指定key

????type key 返回給定key的value類型

????keys pattern 返回匹配指定模式的所有key(例:keys class*在旱;返回classa,classb,classc)

????rename okey nkey 改名

????dbsize? 返回當(dāng)前數(shù)據(jù)庫的key數(shù)量

????expire key seconds 為key指定過期時(shí)間

????ttl key 返回key剩余過期秒數(shù)(Time To Live)不存在返回-2,永不過期返回-1

????select db-index 選擇數(shù)據(jù)庫(共16個(gè))

????move key db-index? 移動(dòng)到指定數(shù)據(jù)庫

????flushdb 刪除當(dāng)前數(shù)據(jù)庫中所有key

????flushall 刪除所有數(shù)據(jù)庫的所有key

????get keyname? 獲取指定key的值

STRING

????1 string是redis最基本的類型

????2 redis的string可以包含任何數(shù)據(jù)海蔽,包括jpg圖片或者序列化的對(duì)象。

????3 單個(gè)value值最大1G字節(jié)尸变。

????4 如果只用string,redis就可以看做被加上持久化特性的memcache莉兰。

????set? ? key value? ? ? ? ? 設(shè)置key對(duì)應(yīng)的值為string類型的value

????mset? key1 value1 key2 value2 ...? 批量設(shè)置

????mget? key1 key2 ...? ? ? 批量獲取

????incr? key? ? ? ? ? ? ? ? 加加操作聊训,并返回新的值

????decr? key? ? ? ? ? ? ? ? 減減操作,并返回新的值

????incrby key [integer]? ? ? 同incr雏蛮,加指定值

????decrby key [integer]? ? ? 同decr涎嚼,減指定值

? ? append key value? ? ? ? ? 給指定的key追加value

????substr key [start] [end]? 返回截取過得key的字符串值

? ? *當(dāng)加減創(chuàng)建的值不存在,會(huì)自動(dòng)創(chuàng)建挑秉,做0

LIST

????list 類型其實(shí)就是一個(gè)雙向鏈表法梯。通過push,pop操作從鏈表的頭部或者尾部添加刪除元素。既可以作棧(先進(jìn)后出)犀概,也可以用作隊(duì)列(先進(jìn)先出)立哑。

????lpush? key string? ? 在key對(duì)應(yīng)的list的頭部添加字符串元素

????rpush? key string? ? 在尾部添加

????lpop? key? ? ? ? ? 在list的頭部刪除元素,并返回刪除元素

????rpop? key? ? ? ? ? 從list的尾部刪除元素姻灶,并返回刪除元素

????llen? key? ? ? ? ? 返回key對(duì)應(yīng)list的長(zhǎng)度铛绰,key不存在返回0,如果key對(duì)應(yīng)類型不是list返回錯(cuò)誤

????lrange key start end 返回指定區(qū)間內(nèi)的元素

????ltrim? key start end 截取list产喉,保留指定區(qū)間元素

SET

????redis的set是string類型的無序結(jié)合

????set元素最大可以包含(2的32次方-1)個(gè)元素

????set集合類型除了基本的添加刪除操作至耻,其他有用的操作還包括集合的取并集(union),交集(intersection),差集(difference)若皱。通過這些可以很容易實(shí)現(xiàn)sns(社交網(wǎng)絡(luò)平臺(tái))中的好友推薦功能,不允許有重復(fù)元素尘颓。

????sadd key member? ? ? ? 添加一個(gè)string元素到key對(duì)應(yīng)的set集合中走触,成功則返回1,如果元素已經(jīng)在集合中返回0疤苹,key對(duì)應(yīng)的set集合不存在返回錯(cuò)誤

????srem key member [member]? 從key對(duì)應(yīng)的set集合中移除給定元素弦蹂,成功返回1

????smove p1 p2 member ? 將p1所屬set中的member移動(dòng)到p2所屬的set中

????scard key? ? 返回set的元素個(gè)數(shù)

????sismember key member ? 判斷member是否在set中

????sinter key1 key2 ... ? 取所有給定key的交集(intersection)

????sunion key1 key2 ... ? 取所有給定key的并集

????sdiff? key1 key2 ... ? 取所有給定key的差集

????smembers key ? 返回對(duì)應(yīng)set的所有元素砌庄,結(jié)果是無序的

ZSET

????和set不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)權(quán)瓮床,通過權(quán)值可以有序的獲取集合中的元素

????zadd key [score] [member] 添加元素到集合夷都,元素在集合中存在則更新對(duì)應(yīng)score(即權(quán)值),權(quán)值相等,先入為大

????zrem key member 刪除指定元素尤莺,成功返回1旅敷,不存在返回0

????zincrby key incr member 按照incr幅度增加對(duì)應(yīng)member的score值,返回score值

????zrank key member 返回指定元素在集合中的排名颤霎,集合中元素是按照score從小到大排序

????zrevrank key member ? ? ? ? 同上媳谁,按照從大到小排序

????zrange key start end 從集合中取指定區(qū)間的元素,返回有序結(jié)果

????zrevrange key start end 返回結(jié)果按照score逆序

????zcard key 返回集合中元素個(gè)數(shù)

????zscore key element 返回給定元素對(duì)應(yīng)的score

????zremrangerank key min max 刪除集合中排名在給定區(qū)間的元素友酱,通過score從小到大(remove range rank)

????例子:

????zadd test 1 zhangsan

????zadd test 2 lisi

????zrange test 0 1

????zhangsan

????lisi

????因?yàn)椴辉试S重復(fù)的成員晴音,可以用來做排行榜。

HASH

????主要用來解決對(duì)象存儲(chǔ)需要序列化和反序列化的開銷缔杉,或者存為多條數(shù)據(jù)的內(nèi)存開銷锤躁。哈希可以直接用key加field進(jìn)行存儲(chǔ)如姓名或详,年齡一些信息系羞,而且可以只針對(duì)其中一條進(jìn)行更改。

????hset key field value? ? 設(shè)置hash->field的值為value,如果key不存在霸琴,則先創(chuàng)建

????hget key field? 獲取指定的hashfield

????hmget key field1...? ? 批量獲取

????hmset key field1 value1 field2 value2 批量設(shè)置

????hincrby key field integer 將指定key->field 加上給定值

????hexists key field? 測(cè)試指定field是否存在

????hdel? key field 刪除指定hash? field

????hkeys key 返回hash 的所有field

????hvals key 返回hash的所有value

????hgetall key 返回hash的所有field和value

?著作權(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)離奇詭異,居然都是意外死亡辑莫,警方通過查閱死者的電腦和手機(jī)学歧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來各吨,“玉大人枝笨,你說我怎么就攤上這事。” “怎么了横浑?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵剔桨,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我徙融,道長(zhǎng)洒缀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任欺冀,我火速辦了婚禮树绩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘隐轩。我一直安慰自己饺饭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布职车。 她就那樣靜靜地躺著瘫俊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪提鸟。 梳的紋絲不亂的頭發(fā)上军援,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音称勋,去河邊找鬼胸哥。 笑死,一個(gè)胖子當(dāng)著我的面吹牛赡鲜,可吹牛的內(nèi)容都是我干的空厌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼银酬,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼嘲更!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起揩瞪,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤赋朦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后李破,有當(dāng)?shù)厝嗽跇淞掷锇l(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
  • 文/蒙蒙 一淹遵、第九天 我趴在偏房一處隱蔽的房頂上張望口猜。 院中可真熱鬧,春花似錦透揣、人聲如沸济炎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽须尚。三九已至,卻和暖如春侍咱,著一層夾襖步出監(jiān)牢的瞬間耐床,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國打工楔脯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留撩轰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓昧廷,卻偏偏與公主長(zhǎng)得像堪嫂,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子木柬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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