Redis命令

轉(zhuǎn)載(https://www.cnblogs.com/it-cen/p/4297273.html)

一、查詢相應(yīng)的key

(1)redis允許模糊查詢key  有3個通配符 *毕莱、?猖凛、[]

(2)randomkey:返回隨機key

(3)type key:返回key存儲的類型

(4)exists key:判斷某個key是否存在

(5)del key:刪除key

(6)rename key newkey:改名

(7)renamenx key newkey:如果newkey不存在則修改成功

(8)move key 1:將key移動到1數(shù)據(jù)庫

(9)ttl key:查詢key的生命周期(秒)

(10)expire key 整數(shù)值:設(shè)置key的生命周期以秒為單位

(11)pexpire key 整數(shù)值:設(shè)置key的生命周期以毫秒為單位

(12)pttl key:查詢key 的生命周期(毫秒)

(13)perisist key:把指定key設(shè)置為永久有效

二达皿、字符串類型的操作

(1)set key value [ex 秒數(shù)] [px 毫秒數(shù)] [nx/xx]

如果ex和px同時寫岭洲,則以后面的有效期為準

nx:如果key不存在則建立

xx:如果key存在則修改其值

(2)get key:取值

(3)mset key1 value1 key2 value2 一次設(shè)置多個值

(4)mget key1 key2 :一次獲取多個值

(5)setrange key offset value:把字符串的offset偏移字節(jié)改成value

如果偏移量 > 字符串長度扮超,該字符自動補0x00

(6)append key value :把value追加到key 的原值上

(7)getrange key start stop:獲取字符串中[start, stop]范圍的值

對于字符串的下標扒腕,左數(shù)從0開始擂达,右數(shù)從-1開始

注意:當start>length土铺,則返回空字符串

當stop>=length,則截取至字符串尾

如果start所處位置在stop右邊板鬓,則返回空字符串

(8)getset key nrevalue:獲取并返回舊值悲敷,在設(shè)置新值

(9)incr key:自增,返回新值俭令,如果incr一個不是int的value則返回錯誤后德,incr一個不存在的key,則設(shè)置key為1

(10)incrby key 2:跳2自增

(11)incrbyfloat by 0.7: 自增浮點數(shù)

(12)setbit key offset value:設(shè)置offset對應(yīng)二進制上的值抄腔,返回該位上的舊值

注意:如果offset過大瓢湃,則會在中間填充0

offset最大到多少

2^32-1,即可推出最大的字符串為512M

(13)bitop operation destkey key1 [key2..] 對key1 key2做opecation并將結(jié)果保存在destkey上

opecation可以是AND OR NOT XOR

(14)strlen key:取指定key的value值的長度

(15)setex key time value:設(shè)置key對應(yīng)的值value赫蛇,并設(shè)置有效期為time秒

三绵患、鏈表操作

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]中的元素

(6)lrem key count value:從鏈表中刪除value值掘殴,刪除count的絕對值個value后結(jié)束

count > 0 從表頭刪除  count < 0 從表尾刪除  count=0 全部刪除

(7)ltrim key start stop:剪切key對應(yīng)的鏈接,切[start, stop]一段并把改制重新賦給key

(8)lindex key index:返回index索引上的值

(9)llen key:計算鏈表的元素個數(shù)

(10)linsert key after|before search value:在key 鏈表中尋找search粟誓,并在search值之前|之后插入value

(11)rpoplpush source dest:把source 的末尾拿出,放到dest頭部起意,并返回單元值

應(yīng)用場景: task + bak 雙鏈表完成安全隊列

image

業(yè)務(wù)邏輯: rpoplpush task bak

接收返回值并做業(yè)務(wù)處理

如果成功則rpop bak清除任務(wù)鹰服,如果不成功,下次從bak表取任務(wù)

(12)brpop,blpop key timeout:等待彈出key的尾/頭元素

timeout為等待超時時間悲酷,如果timeout為0則一直等待下去

應(yīng)用場景:長輪詢ajax套菜,在線聊天時能用到

四、hashes類型及操作

Redis hash 是一個string類型的field和value的映射表设易,它的添加逗柴、刪除操作都是O(1)(平均)。hash特別適用于存儲對象顿肺,將一個對象存儲在hash類型中會占用更少的內(nèi)存戏溺,并且可以方便的存取整個對象。

配置: hash_max_zipmap_entries 64 #配置字段最多64個

hash_max_zipmap_value 512 #配置value最大為512字節(jié)

(1)hset myhash field value:設(shè)置myhash的field為value

(2)hsetnx myhash field value:不存在的情況下設(shè)置myhash的field為value

(3)hmset myhash field1 value1 field2 value2:同時設(shè)置多個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數(shù)量

(9)hdel myhash field:刪除指定的field

(10)hkeys myhash:返回hash所有的field

(11)hvals myhash:返回hash所有的value

(12)hgetall myhash:獲取某個hash中全部的field及value

五屠尊、集合結(jié)構(gòu)操作

特點:無序性旷祸、確定性、唯一性

(1)sadd key value1 value2:往集合里面添加元素

(2)smembers key:獲取集合所有的元素

(3)srem key value:刪除集合某個元素

(4)spop key:返回并刪除集合中1個隨機元素(可以坐抽獎讼昆,不會重復(fù)抽到某人)

(5)srandmember key:隨機取一個元素

(6)sismember key value:判斷集合是否有某個值

(7)scard key:返回集合元素的個數(shù)

(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的基礎(chǔ)上增加了一個順序?qū)傩裕@一屬性在添加修改元素的時候可以指定浸赫,每次指定后闰围,zset會自動按新的值調(diào)整順序〖认浚可以理解為有兩列的mysql表羡榴,一列存儲value,一列存儲順序涧狮,操作中key理解為zset的名字炕矮。

和set一樣sorted,sets也是string類型元素的集合者冤,不同的是每個元素都會關(guān)聯(lián)一個double型的score肤视。sorted set的實現(xiàn)是skip list和hash table的混合體。

當元素被添加到集合中時涉枫,一個元素到score的映射被添加到hash table中邢滑,所以給定一個元素獲取score的開銷是O(1)。另一個score到元素的映射被添加的skip list愿汰,并按照score排序困后,所以就可以有序地獲取集合中的元素。添加、刪除操作開銷都是O(logN)和skip list的開銷一致,redis的skip list 實現(xiàn)是雙向鏈表馆类,這樣就可以逆序從尾部去元素嫂易。sorted set最經(jīng)常使用方式應(yīng)該就是作為索引來使用,我們可以把要排序的字段作為score存儲旦袋,對象的ID當元素存儲瓷患。

(1)zadd key score1 value1:添加元素

(2)zrange key start stop [withscore]:把集合排序后,返回名次[start,stop]的元素 默認是升續(xù)排列 withscores 是把score也打印出來

(3)zrank key member:查詢member的排名(升序0名開始)

(4)zrangebyscore key min max [withscores] limit offset N:集合(升序)排序后取score在[min, max]內(nèi)的元素相种,并跳過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:返回集合元素的個數(shù)

(10)zcount key min max:返回[min, max]區(qū)間內(nèi)元素數(shù)量

(11)zinterstore dest numkeys key1[key2..] [WEIGHTS weight1 [weight2...]] [AGGREGATE SUM|MIN|MAX]

求key1蜕猫,key2的交集寂曹,key1,key2的權(quán)值分別是weight1回右,weight2

聚合方法用 sum|min|max

聚合結(jié)果 保存子dest集合內(nèi)

注意:weights,aggregate如何理解隆圆?

答:如果有交集,交集元素又有score楣黍,score怎么處理匾灶?aggregate num->score相加,min最小score租漂,max最大score阶女,另外可以通過weights設(shè)置不同的key的權(quán)重,交集時 score*weight

七哩治、服務(wù)器相關(guān)命令

(1)ping:測定連接是否存活

(2)echo:在命令行打印一些內(nèi)容

(3)select:選擇數(shù)據(jù)庫

(4)quit:退出連接

(5)dbsize:返回當前數(shù)據(jù)庫中key的數(shù)目

(6)info:獲取服務(wù)器的信息和統(tǒng)計

(7)monitor:實時轉(zhuǎn)儲收到的請求

(8)config get 配置項:獲取服務(wù)器配置的信息

config set 配置項 值:設(shè)置配置項信息

(9)flushdb:刪除當前選擇數(shù)據(jù)庫中所有的key

(10)flushall:刪除所有數(shù)據(jù)庫中的所有的key

(11)time:顯示服務(wù)器時間秃踩,時間戳(秒),微秒數(shù)

(12)bgrewriteaof:后臺保存rdb快照

(13)bgsave:后臺保存rdb快照

(14)save:保存rdb快照

(15)lastsave:上次保存時間

(16)shutdown [save/nosave]

注意:如果不小心運行了flushall业筏,立即shutdown nosave憔杨,關(guān)閉服務(wù)器,然后手工編輯aof文件蒜胖,去掉文件中的flushall相關(guān)行消别,然后開啟服務(wù)器,就可以倒回原來是數(shù)據(jù)台谢。如果flushall之后寻狂,系統(tǒng)恰好bgwriteaof了,那么aof就清空了朋沮,數(shù)據(jù)丟失蛇券。

(17)showlog:顯示慢查詢

問:多慢才叫慢?

答:由slowlog-log-slower-than 10000樊拓,來指定(單位為微秒)

問:服務(wù)器存儲多少條慢查詢記錄

答:由slowlog-max-len 128纠亚,來做限制

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市筋夏,隨后出現(xiàn)的幾起案子蒂胞,更是在濱河造成了極大的恐慌,老刑警劉巖条篷,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啤誊,死亡現(xiàn)場離奇詭異岳瞭,居然都是意外死亡,警方通過查閱死者的電腦和手機蚊锹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來稚瘾,“玉大人牡昆,你說我怎么就攤上這事√罚” “怎么了丢烘?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長些椒。 經(jīng)常有香客問我播瞳,道長,這世上最難降的妖魔是什么免糕? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任赢乓,我火速辦了婚禮,結(jié)果婚禮上石窑,老公的妹妹穿的比我還像新娘牌芋。我一直安慰自己,他們只是感情好松逊,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布躺屁。 她就那樣靜靜地躺著,像睡著了一般经宏。 火紅的嫁衣襯著肌膚如雪犀暑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天烁兰,我揣著相機與錄音耐亏,去河邊找鬼。 笑死缚柏,一個胖子當著我的面吹牛苹熏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播币喧,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼轨域,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了杀餐?” 一聲冷哼從身側(cè)響起干发,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎史翘,沒想到半個月后枉长,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冀续,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年必峰,在試婚紗的時候發(fā)現(xiàn)自己被綠了洪唐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡吼蚁,死狀恐怖凭需,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肝匆,我是刑警寧澤粒蜈,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站旗国,受9級特大地震影響枯怖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜能曾,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一度硝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧借浊,春花似錦塘淑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至曙蒸,卻和暖如春捌治,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背纽窟。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工肖油, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人臂港。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓森枪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親审孽。 傳聞我的和親對象是個殘疾皇子县袱,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

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

  • Redis命令運行于redis服務(wù)器上,要在服務(wù)器上運行命令需要一個redis客戶端佑力,在安裝Redis安裝包時式散,我...
    第八共同體閱讀 230評論 0 0
  • 概述 Redis的鍵值可以使用物種數(shù)據(jù)類型:字符串,散列表打颤,列表暴拄,集合漓滔,有序集合。本文詳細介紹這五種數(shù)據(jù)類型的使用...
    fang63625閱讀 695評論 0 51
  • 最近學習redis乖篷,記錄一下 redis官網(wǎng):redis.io 中文官網(wǎng):http://www.redis.net...
    alexpdh閱讀 1,878評論 0 1
  • 一响驴、數(shù)據(jù)類型 1.有哪些類型 Redis是Key-Value型數(shù)據(jù)庫,Key只有一種類型那伐,字符串踏施。Value的數(shù)據(jù)...
    愛迪生瑪瑪閱讀 386評論 0 1
  • 本文為筆者對在學習Redis過程中所收集資料的一個總結(jié),目的是為了以后方便回顧相關(guān)的知識,大部分為非原創(chuàng)內(nèi)容罕邀。特此...
    EakonZhao閱讀 14,449評論 0 9