如何從命令行更改Redis配置

介紹

Redis是一個開源的、內存中的鍵值數據存儲庫。Redis具有多個命令,允許您在運行時更改Redis服務器的配置設置。本教程將討論其中一些命令,並解釋如何使這些配置更改永久生效。

如何使用本指南

本指南被撰寫為一份包含自包含示例的速查表。我們鼓勵您跳到任何與您正在完成的任務相關的部分。

本指南中顯示的命令是在運行Redis版本6.0.16的Ubuntu 22.04服務器上進行測試的。要設置類似的環境,您可以遵循我們的指南的第1步,該指南是關於在Ubuntu 22.04上安裝和保護Redis的。我們將通過使用redis-cli,即Redis命令行界面來展示這些命令的行為。如果您使用的是不同的Redis界面 — 例如Redli — 某些命令的確切輸出可能會有所不同。

或者,您可以提供一個托管的 Redis 數據庫實例來測試這些命令,但根據您的數據庫提供商允許的控制級別而定,本指南中的某些命令可能無法按照描述的方式工作。要提供 DigitalOcean 托管的數據庫,請參閱我們的托管數據庫產品文檔。然後,您必須安裝 Redli或者設置一個 TLS 隧道以便通過 TLS 連接到托管的數據庫。

請注意,托管的 Redis 數據庫通常不允許用戶更改配置文件。如果您正在使用 DigitalOcean 的托管數據庫,本指南中概述的命令將導致錯誤。

更改 Redis 的配置

本節中概述的命令將僅在當前會話的持續時間內或直到運行config rewrite為止更改 Redis 服務器的行為,從而使它們永久生效。您可以直接通過打開並使用您喜歡的文本編輯器編輯 Redis 配置文件。例如,您可以使用nano進行編輯:

  1. sudo nano /etc/redis/redis.conf

警告: config set 命令被認為是危險的。通過更改你的 Redis 配置文件,可能會導致你的 Redis 服務器表現出意外或不希望的行為。我們建議只有在測試其行為或您絕對確定要更改 Redis 配置時才運行 config set 命令。

將此命令重新命名為較不可能意外運行的名稱可能符合你的利益。

config set 允許你在運行時重新配置 Redis 而無需重新啟動服務。它使用以下語法:

  1. config set parameter value

例如,如果你想要更改運行 save 命令後 Redis 產生的數據庫備份文件的名稱,你可以運行以下命令:

  1. config set "dbfilename" "new_file.rdb"

如果配置更改有效,該命令將返回 OK。否則,它將返回錯誤。

注意: 並非 redis.conf 文件中的每個參數都可以通過 config set 操作更改。例如,你不能更改由 requirepass 參數定義的驗證密碼。

使配置更改永久生效

config set 不會永久修改 Redis 實例的配置文件;它只會在運行時更改 Redis 的行為。在運行 config-set 命令後編輯 redis.conf,並將當前會話的配置變為永久的,請運行 config rewrite

  1. config rewrite

此命令優先保留原始 redis.conf 文件的註釋和整體結構,只對與服務器當前使用的設置相匹配的部分進行最小更改。

config set 一樣,如果重寫成功,config rewrite 將返回 OK

檢查 Redis 的配置

要讀取 Redis 服務器的當前配置參數,請運行 config get 命令。config get 接受一個參數,可以是 redis.conf 中使用的參數的完全匹配,或者是一個 glob 模式。例如:

  1. config get repl*

根據您的 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 get * 返回 config set 支持的所有配置參數。

結論

本指南詳細介紹了用於修改 Redis 伺服器配置文件的 redis-cli 命令。如果您在本指南中想了解其他相關命令、參數或程序,請在評論中提問或提出建議。

有關 Redis 命令的更多信息,請查看我們的教程系列:如何管理 Redis 資料庫

Source:
https://www.digitalocean.com/community/cheatsheets/how-to-change-redis-configuration