Redis有幾個命令,可讓您即時更改Redis服務(wù)器的配置設(shè)置。本教程將介紹其中一些命令,并說明如何使這些配置更改永久生效。
如何使用本指南
本指南以備有完整示例的備忘單形式編寫。我們鼓勵您跳至與您要完成的任務(wù)相關(guān)的任何部分。
本指南中顯示的命令已在運(yùn)行Redis版本4.0.9的Ubuntu 18.04服務(wù)器上進(jìn)行了測試。要設(shè)置類似的環(huán)境,您可以按照我們的指南如何在Ubuntu 18.04上安裝和保護(hù)Redis的步驟1進(jìn)行操作。我們將通過使用Redis命令行界面運(yùn)行它們來演示這些命令的行為。請注意,如果您使用其他Redis界面(例如Redli),則某些命令的確切輸出可能會有所不同。
請注意,托管Redis數(shù)據(jù)庫通常不允許用戶更改配置文件。如果您正在使用DigitalOcean的托管數(shù)據(jù)庫,則本指南中概述的命令將導(dǎo)致錯誤。
更改Redis的配置
本節(jié)中概述的命令將僅在當(dāng)前會話期間或直到您運(yùn)行之前更改Redis服務(wù)器的行為,config rewrite這將使它們永久化。您可以通過使用首選文本編輯器打開和編輯Redis配置文件來直接更改它。例如,您可以nano這樣做:
sudo nano /etc/redis/redis.conf
警告:該config set命令被認(rèn)為是危險的。通過更改Redis配置文件,有可能導(dǎo)致Redis服務(wù)器以意外或不良方式運(yùn)行。我們建議僅在config set測試命令的行為或絕對確定要對Redis配置進(jìn)行更改時才運(yùn)行該命令。
您可能希望將此命令重命名為不太可能意外運(yùn)行的命令。
config set允許您在運(yùn)行時重新配置Redis,而無需重新啟動服務(wù)。它使用以下語法:
config set parameter value
例如,如果要更改運(yùn)行save命令后Redis將產(chǎn)生的數(shù)據(jù)庫轉(zhuǎn)儲文件的名稱,則可以運(yùn)行如下命令:
config set "dbfilename" "new_file.rdb"
如果配置更改有效,則命令將返回OK。否則將返回錯誤。
注意:并非redis.conf文件中的每個參數(shù)都可以通過config set操作來更改。例如,您不能更改requirepass參數(shù)定義的身份驗證密碼。
永久進(jìn)行配置更改
config set不會永久更改Redis實例的配置文件;它僅在運(yùn)行時更改Redis的行為。要redis.conf在運(yùn)行config-set命令后進(jìn)行編輯并使當(dāng)前會話的配置永久化,請運(yùn)行config rewrite:
config rewrite
此命令將盡最大努力保留原始redis.conf文件的注釋和整體結(jié)構(gòu),而只需進(jìn)行最小的更改即可匹配服務(wù)器當(dāng)前使用的設(shè)置。
就像config set,如果重寫成功config rewrite將返回OK。
檢查Redis的配置
要讀取Redis服務(wù)器的當(dāng)前配置參數(shù),請運(yùn)行config get命令。config get只有一個參數(shù),其可以是在使用的參數(shù)中的任一個完全匹配redis.conf或水珠圖案)。例如:
config get repl*
根據(jù)您的Redis配置,此命令可能返回:
Output 1) "repl-ping-slave-period" 2) "10" 3) "repl-timeout" 4) "60" 5) "repl-backlog-size" 6) "1048576" 7) "repl-backlog-ttl" 8) "3600" 9) "repl-diskless-sync-delay"10) "5"11) "repl-disable-tcp-nodelay"12) "no"13) "repl-diskless-sync"14) "no"
您還可以config set通過運(yùn)行返回所有支持的配置參數(shù)config get *。
相關(guān)參考:Redis教程