1屋群、概述:
Redis在設(shè)計(jì)之初就被定義為長時(shí)間不間斷運(yùn)行的服務(wù)進(jìn)程,因此大多數(shù)系統(tǒng)配置參數(shù)都可以在不重新啟動進(jìn)程的情況下立即生效趾娃。即便是將當(dāng)前的持久化模式從AOF切換到RDB也無需重啟扔水。
在Redis中舞骆,提供了一組和服務(wù)器管理相關(guān)的命令廷没,其中就包含和參數(shù)設(shè)置有關(guān)的CONFIG SET/GET command糊饱。
2、相關(guān)命令列表:
CONFIG GET parameter 主要用于讀取服務(wù)器的運(yùn)行時(shí)參數(shù)颠黎,但是并不是所有的配置參數(shù)都可以通過該命令進(jìn)行讀取另锋。其中該命令的參數(shù)接受glob風(fēng)格的模式匹配規(guī)則,因此如果參數(shù)中包含模式元字符盏缤,那么所有匹配的參數(shù)都將以key/value方式被列出砰蠢。如果參數(shù)是*蓖扑,那么該命令支持的所有參數(shù)都將被列出唉铜。最后需要指出的是,和redis.conf中不同的是律杠,在命令中不能使用數(shù)量縮寫格式潭流,如GB竞惋、KB等,只能使用表示字節(jié)數(shù)量的整數(shù)值灰嫉。
CONFIG SET parameter value 該命令用于重新配置Redis服務(wù)器的運(yùn)行時(shí)參數(shù)拆宛,在設(shè)置成功之后無需重啟便可生效。然而并非所有的參數(shù)都可以通過該命令進(jìn)行動態(tài)設(shè)置讼撒,如果需要獲悉該命令支持哪些參數(shù)浑厚,可以查看CONFIG GET * 命令的執(zhí)行結(jié)果。如果想在一個(gè)命令中設(shè)置多個(gè)同類型參數(shù)根盒,如redis.conf配置文件中的save參數(shù):save 900 1/save 300 10钳幅。在該命令中我們可以將多個(gè)key/value用雙引號括起,并用空格符隔開炎滞,如:config set save "900 1 300 10"敢艰。 OK表示設(shè)置成功,否則返回相關(guān)的錯(cuò)誤信息册赛。
- CONFIG RESETSTAT O(1) Reset INFO命令給出的統(tǒng)計(jì)數(shù)字钠导。 始終返回OK。
- DBSIZE 返回當(dāng)前打開的數(shù)據(jù)庫中Keys的數(shù)量森瘪。 Key的數(shù)量牡属。
- FLUSHALL 清空當(dāng)前服務(wù)器管理的數(shù)據(jù)庫中的所有Keys,不僅限于當(dāng)前打開的數(shù)據(jù)庫柜砾。
- FLUSHDB 清空當(dāng)前數(shù)據(jù)庫中的所有Keys湃望。
- INFO 獲取和服務(wù)器運(yùn)行狀況相關(guān)的一些列統(tǒng)計(jì)數(shù)字。
- SAVE 設(shè)置RDB持久化模式的保存策略痰驱。
- SHUTDOWN 停止所有的客戶端证芭,同時(shí)以阻塞的方式執(zhí)行內(nèi)存數(shù)據(jù)持久化。如果AOF模式被啟用担映,則將緩存中的數(shù)據(jù)flush到AOF文件废士。退出服務(wù)器。
- SLAVEOF host port 該命令用于修改SLAVE服務(wù)器的復(fù)制設(shè)置蝇完。如果一個(gè)Redis服務(wù)器已經(jīng)處于SLAVE狀態(tài)官硝,SLAVEOF NO ONE命令將關(guān)閉當(dāng)前服務(wù)器的被復(fù)制狀態(tài),與此同時(shí)將該服務(wù)器切換到MASTER狀態(tài)短蜕。該命令的參數(shù)將指定MASTER服務(wù)器的監(jiān)聽IP和端口氢架。還有一種情況是,當(dāng)前服務(wù)器已經(jīng)是另外一臺MASTER的SLAVE了朋魔,在執(zhí)行該命令后岖研,當(dāng)前服務(wù)器將終止和之前MASTER之間的復(fù)制關(guān)系,而將成為新MASTER的SLAVE,之前MASTER中的數(shù)據(jù)也將被清空孙援,改為新MASTER中的數(shù)據(jù)害淤。然而如果在當(dāng)前SLAVE服務(wù)器上執(zhí)行的是SLAVEOF NO ONE命令,那么該服務(wù)器只是中斷與當(dāng)前MASTER的復(fù)制關(guān)系拓售,并升級為獨(dú)立的MASTER窥摄,其中的數(shù)據(jù)也不會被清空。
- SLOWLOG subcommand [argument] 該命令主要用于讀取執(zhí)行時(shí)間較長的命令础淤。其中執(zhí)行時(shí)間的評判標(biāo)準(zhǔn)僅為命令本身的執(zhí)行時(shí)間崭放,并不包括網(wǎng)絡(luò)交互時(shí)間。和該命令相關(guān)的配置參數(shù)主要有兩個(gè)鸽凶,第一個(gè)就是執(zhí)行之間的閾值(以微秒為單位)莹菱,即執(zhí)行時(shí)間超過該值的命令都會被存入slowlog隊(duì)列,以供該命令讀取吱瘩。第二個(gè)是slowlog隊(duì)列的長度道伟,如果當(dāng)前命令在存入之前,該隊(duì)列中的命令已經(jīng)等于該參數(shù)使碾,在命令進(jìn)入之前蜜徽,需要將隊(duì)列中最老的命令移出隊(duì)列。這樣可以保證該隊(duì)列所占用的內(nèi)存總量保持在一個(gè)相對恒定的大小票摇。由于slowlog隊(duì)列不會被持久化到磁盤拘鞋,因此Redis在收集命令時(shí)不會對性能產(chǎn)生很大的影響。通常我們可以將參數(shù)"slowlog-log-slower-than"設(shè)置為0矢门,以便收集所有命令的執(zhí)行時(shí)間盆色。該命令還包含以下幾個(gè)子命令:
1). SLOWLOG GET N: 從slowlog隊(duì)列中讀取命令信息,N表示最近N條命令的信息祟剔。
2). SLOWLOG LEN:獲取slowlog隊(duì)列的長度隔躲。
3). SLOWLOG RESET:清空slowlog中的內(nèi)容。
最后給出SLOWLOG GET命令返回信息的解釋物延。
文章內(nèi)容整理自學(xué)習(xí)資料和網(wǎng)絡(luò), 侵刪.