Heim  >  Artikel  >  Datenbank  >  Einführung in die Redis-Konfigurationsdatei

Einführung in die Redis-Konfigurationsdatei

尚
nach vorne
2019-12-13 17:25:212731Durchsuche

Einführung in die Redis-Konfigurationsdatei

1. Anfangsanleitung

Einführung in die Redis-Konfigurationsdatei

Hier gibt es nichts zu sagen Wenn die Größe später benötigt wird, können Sie die Einheit angeben, normalerweise in der Form k, gb, m, wobei die Groß- und Kleinschreibung nicht beachtet wird.

2. ENTHÄLT

Einführung in die Redis-Konfigurationsdatei

Wir wissen, dass Redis nur eine Konfigurationsdatei hat, wenn sie von mehreren Personen entwickelt und verwaltet wird Für eine solche Konfigurationsdatei können hier über include /path/to/local.conf mehrere Konfigurationsdateien konfiguriert werden, und die ursprüngliche Konfigurationsdatei redis.conf dient als Haupttor.

ps: Wenn Sie die Struts2-Entwicklung verwendet haben und mehrere Personen im Projektteam entwickeln, gibt es normalerweise mehrere Struts2.xml-Dateien, die auch über die Klassenkonfiguration eingeführt werden.

Wenn Sie diese Konfiguration außerdem am Anfang der Datei redis.conf schreiben, überschreibt die nachfolgende Konfiguration die Konfiguration der importierten Datei. Wenn Sie sich auf die Konfiguration der importierten Datei konzentrieren möchten, Sie müssen Folgendes einschließen: Die Konfiguration wird am Ende der Datei redis.conf geschrieben.

3. MODULE

Einführung in die Redis-Konfigurationsdatei

Das explosive Feature von redis3.0 ist der neue Cluster, und redis4.0 ist in 3.0 Viele Darauf aufbauend wurden neue Funktionen hinzugefügt, zu denen auch die benutzerdefinierte Modulkonfiguration hier gehört. Durch die Loadmodule-Konfiguration werden hier benutzerdefinierte Module eingeführt, um einige neue Funktionen hinzuzufügen.

4. NETZWERK

Einführung in die Redis-Konfigurationsdatei

ps: Die Konfiguration hier ist lang, ich habe nur einen Teil davon abgefangen, das gleiche unten.

①, binden: Binden Sie die IP der Redis-Server-Netzwerkkarte. Der Standardwert ist 127.0.0.1, die lokale Loopback-Adresse. In diesem Fall kann der Zugriff auf den Redis-Dienst nur über die lokale Client-Verbindung erfolgen, nicht jedoch über Remote-Verbindungen. Wenn die Bindungsoption leer ist, werden Verbindungen von allen verfügbaren Netzwerkschnittstellen akzeptiert.

②, Port: Geben Sie den Port an, auf dem Redis ausgeführt wird. Der Standardwert ist 6379. Da es sich bei Redis um ein Single-Threaded-Modell handelt, wird der Port geändert, wenn mehrere Redis-Prozesse auf einer einzelnen Maschine geöffnet werden.

③, Timeout: Legen Sie die Timeout-Zeit in Sekunden fest, wenn der Client eine Verbindung herstellt. Wenn der Client in diesem Zeitraum keine Anweisungen erteilt, wird die Verbindung geschlossen. Der Standardwert ist 0, was bedeutet, dass kein Herunterfahren erfolgt.

④, tcp-keepalive: Die Einheit ist Sekunden, was bedeutet, dass SO_KEEPALIVE regelmäßig verwendet wird, um zu erkennen, ob sich der Client noch in einem fehlerfreien Zustand befindet, um zu verhindern, dass der Server ständig blockiert wird. Der offiziell empfohlene Wert ist 300s, wenn auf 0 gesetzt, wird es nicht regelmäßig erkannt.

5. ALLGEMEIN

Einführung in die Redis-Konfigurationsdatei

Detaillierte Konfigurationsdetails:

①, daemonize: auf „Ja“ setzen, um Redis anzugeben Als Daemon starten (im Hintergrund starten). Der Standardwert ist no

②, pidfile: Konfigurieren Sie den PID-Dateipfad. Wenn Redis als Daemon-Prozess ausgeführt wird, wird die PID standardmäßig in die Datei /var/redis/run/redis_6379.pid geschrieben

③, Loglevel: Definieren Sie den Loglevel. Der Standardwert ist „notice“ mit den folgenden 4 Werten:

debug (zeichnet eine große Menge an Protokollinformationen auf, geeignet für Entwicklungs- und Testphasen)

verbose (mehr Protokollinformationen)

Hinweis (angemessene Menge an Protokollinformationen, die in der Produktionsumgebung verwendet werden)

Warnung (nur einige wichtige und kritische Informationen werden aufgezeichnet)

④, Protokolldatei: Protokoll konfigurieren Die Dateiadresse wird standardmäßig im Befehlszeilen-Terminalfenster gedruckt

⑤, Datenbanken: Legen Sie die Anzahl der Datenbanken fest. Die Standarddatenbank ist DB 0. Sie können den Befehl „select “ für jede Verbindung verwenden, um einen anderen Datenbankwert zwischen 0 und 1 auszuwählen. Der Standardwert ist 16, was bedeutet, dass Redis standardmäßig über 16 Datenbanken verfügt.

6. SNAPSHOTTING

Die Konfiguration hier wird hauptsächlich für Persistenzvorgänge verwendet.

Einführung in die Redis-Konfigurationsdatei

①, Speichern: Dies wird verwendet, um die Persistenzbedingungen zu konfigurieren, die Redis auslösen, dh wann die Daten im Speicher auf der Festplatte gespeichert werden sollen. Die Standardkonfiguration lautet wie folgt:

save 900 1:表示900 秒内如果至少有 1 个 key 的值变化,则保存
save 300 10:表示300 秒内如果至少有 10 个 key 的值变化,则保存
save 60 10000:表示60 秒内如果至少有 10000 个 key 的值变化,则保存

Wenn Sie nur die Caching-Funktion von Redis verwenden und keine Persistenz benötigen, können Sie natürlich alle Speicherzeilen auskommentieren, um die Speicherfunktion zu deaktivieren. Sie können eine leere Zeichenfolge direkt verwenden, um eine Deaktivierung zu erreichen: save „“

②, stop-writes-on-bgsave-error: Der Standardwert ist „yes“. Wenn RDB aktiviert ist und die letzte Datenspeicherung im Hintergrund fehlschlägt, wird angezeigt, ob Redis keine Daten mehr empfängt. Dadurch würde der Benutzer darauf aufmerksam gemacht, dass die Daten nicht korrekt auf der Festplatte gespeichert wurden, andernfalls würde niemand bemerken, dass eine Katastrophe aufgetreten ist. Wenn Redis neu startet, kann es wieder Daten empfangen

③、rdbcompression ;默认值是yes。对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能,但是存储在磁盘上的快照会比较大。

④、rdbchecksum :默认值是yes。在存储快照后,我们还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能。

⑤、dbfilename :设置快照的文件名,默认是 dump.rdb

⑥、dir:设置快照文件的存放路径,这个配置项一定是个目录,而不能是文件名。使用上面的 dbfilename 作为保存的文件名。

7、REPLICATION

Einführung in die Redis-Konfigurationsdatei

①、slave-serve-stale-data:默认值为yes。当一个 slave 与 master 失去联系,或者复制正在进行的时候,slave 可能会有两种表现:

1) 如果为 yes ,slave 仍然会应答客户端请求,但返回的数据可能是过时,或者数据可能是空的在第一次同步的时候 

2) 如果为 no ,在你执行除了 info he salveof 之外的其他命令时,slave 都将返回一个 "SYNC with master in progress" 的错误

②、slave-read-only:配置Redis的Slave实例是否接受写操作,即Slave是否为只读Redis。默认值为yes。

③、repl-diskless-sync:主从数据复制是否使用无硬盘复制功能。默认值为no。

④、repl-diskless-sync-delay:当启用无硬盘备份,服务器等待一段时间后才会通过套接字向从站传送RDB文件,这个等待时间是可配置的。  这一点很重要,因为一旦传送开始,就不可能再为一个新到达的从站服务。从站则要排队等待下一次RDB传送。因此服务器等待一段  时间以期更多的从站到达。延迟时间以秒为单位,默认为5秒。要关掉这一功能,只需将它设置为0秒,传送会立即启动。默认值为5。

⑤、repl-disable-tcp-nodelay:同步之后是否禁用从站上的TCP_NODELAY 如果你选择yes,redis会使用较少量的TCP包和带宽向从站发送数据。但这会导致在从站增加一点数据的延时。  

Linux内核默认配置情况下最多40毫秒的延时。如果选择no,从站的数据延时不会那么多,但备份需要的带宽相对较多。默认情况下我们将潜在因素优化,但在高负载情况下或者在主从站都跳的情况下,把它切换为yes是个好主意。默认值为no。

8、SECURITY

Einführung in die Redis-Konfigurationsdatei

①、rename-command:命令重命名,对于一些危险命令例如:

flushdb(清空数据库)

flushall(清空所有记录)

config(客户端连接后可配置服务器)

keys(客户端连接后可查看所有存在的键)                   

作为服务端redis-server,常常需要禁用以上命令来使得服务器更加安全,禁用的具体做法是是:

rename-command FLUSHALL ""

也可以保留命令但是不能轻易使用,重命名这个命令即可:

rename-command FLUSHALL abcdefg

这样,重启服务器后则需要使用新命令来执行操作,否则服务器会报错unknown command。

9、CLIENTS

Einführung in die Redis-Konfigurationsdatei

①、maxclients :设置客户端最大并发连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件。  描述符数-32(redis server自身会使用一些),如果设置 maxclients为0 。表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息

10、MEMORY MANAGEMENT

Einführung in die Redis-Konfigurationsdatei

①、maxmemory:设置客户端最大并发连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件。描述符数-32(redis server自身会使用一些),如果设置 maxclients为0 。表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息。

②、maxmemory-policy :当内存使用达到最大值时,redis使用的清楚策略。有以下几种可以选择:

1) volatile-lru Verwenden Sie den LRU-Algorithmus, um abgelaufene Schlüssel zu entfernen (LRU: Least Latest Used)

2) allkeys-lru Verwenden Sie den LRU-Algorithmus, um alle Schlüssel zu entfernen

3) volatile-random entfernt zufällige Schlüssel mit Ablaufzeit

4) allkeys-random entfernt zufällige Schlüssel

5) volatile-ttl entfernt Schlüssel, die bald ablaufen (minor TTL)

6) noeviction noeviction entfernt keinen Schlüssel, sondern gibt nur einen Schreibfehler zurück. Die Standardoption ist

③, maxmemory-samples: Weder LRU noch minimale TTL-Algorithmen sind genaue Algorithmen, sondern relativ präzise Algorithmen ( um Speicherplatz zu sparen). Sie können die Stichprobengröße zum Testen nach Belieben auswählen. Standardmäßig wählt Redis 3 Stichproben zum Testen aus. Sie können die Anzahl der Stichproben über maxmemory-samples festlegen.

11. APPEND-NUR-MODUS

1Einführung in die Redis-Konfigurationsdatei

①, appendonly: Standardmäßig verwendet Redis den RDB-Modus für die Persistenz Es ist für viele Anwendungen ausreichend. Wenn Redis jedoch mittendrin ausfällt, kann es zu Datenverlusten für mehrere Minuten kommen. Die Persistenz wird gemäß der „Nur Datei anhängen“-Methode ausgeführt, die bessere Persistenzeigenschaften bieten kann. Redis schreibt alle geschriebenen Daten nach dem Empfang in die Datei appendonly.aof. Bei jedem Start liest Redis zunächst die Daten dieser Datei in den Speicher und ignoriert zuerst die RDB-Datei. Der Standardwert ist nein.

②, appendfilename: aof-Dateiname, der Standardwert ist „appendonly.aof“

③, appendfsync: Konfiguration der aof-Persistenzstrategie; keine Möglichkeit, fsync nicht auszuführen, und das Betriebssystem stellt sicher Datensynchronisierung mit der Festplatte, was am schnellsten ist; bedeutet, dass fsync immer bei jedem Schreibvorgang ausgeführt wird, um sicherzustellen, dass die Daten mit der Festplatte synchronisiert werden. Jede Sekunde bedeutet, dass fsync einmal pro Sekunde ausgeführt wird, was zum Verlust der Einsen führen kann data

④, no-appendfsync -on-rewrite: Wenn aof eine RDB-Datei neu schreibt oder schreibt, wird zu diesem Zeitpunkt eine große Menge an E/A ausgeführt, und zwar für jeden Sekunden- und immer aof-Modus, wobei fsync ausgeführt wird führt zu einer Blockierung für längere Zeit, no-appendfsync-on-rewrite Die Feldeinstellungen sind standardmäßig auf „Nein“ gesetzt.

Wenn die Anwendung hohe Latenzanforderungen hat, kann dieses Feld auf „Ja“ gesetzt werden, andernfalls kann es auf „Nein“ gesetzt werden, was eine sicherere Wahl für die Persistenzfunktion ist. Die Einstellung „Ja“ bedeutet, dass neue Schreibvorgänge während des Neuschreibens nicht fsyncd werden, sondern vorübergehend im Speicher gespeichert und nach Abschluss des Neuschreibens geschrieben werden. Die Standardeinstellung ist „Nein“, und „Ja“ wird empfohlen. Die Standard-Fsync-Richtlinie von Linux beträgt 30 Sekunden. Es können 30 Sekunden Daten verloren gehen. Der Standardwert ist nein.

⑤, Auto-aof-rewrite-percentage: Der Standardwert ist 100. Wenn die aktuelle AOF-Dateigröße den Prozentsatz der zuletzt neu geschriebenen AOF-Dateigröße überschreitet, wird sie neu geschrieben. Das heißt, wenn die AOF-Datei eine bestimmte Größe erreicht, kann Redis bgrewriteaof aufrufen, um die Protokolldatei neu zu schreiben. Wenn die aktuelle AOF-Dateigröße doppelt so groß ist wie die AOF-Datei, die beim letzten Protokollumschreiben erhalten wurde (auf 100 eingestellt), wird automatisch ein neuer Protokollumschreibevorgang gestartet.

⑥, Auto-Aof-Rewrite-Mindestgröße: 64 MB. Legen Sie die minimale AOF-Dateigröße fest, die neu geschrieben werden darf, um ein erneutes Schreiben zu vermeiden, wenn der vereinbarte Prozentsatz erreicht ist, die Größe aber noch klein ist.

⑦, aof-load-truncated: Die AOF-Datei ist am Ende möglicherweise unvollständig. Wenn Redis startet, werden die Daten der AOF-Datei in den Speicher geladen. Ein Neustart kann auftreten, nachdem das Host-Betriebssystem, auf dem sich Redis befindet, ausgefallen ist, insbesondere wenn das ext4-Dateisystem die Option „data=ordered“ nicht hinzufügt. Dieses Phänomen kann nicht dazu führen, dass das Ende unterbrochen wird Wählen Sie, ob Sie Redis beenden lassen oder so viele Daten wie möglich importieren möchten.

Wenn „Ja“ ausgewählt ist, wird beim Importieren der verkürzten AOF-Datei automatisch ein Protokoll an den Client gesendet und dann geladen. Wenn dies nicht der Fall ist, muss der Benutzer manuell erneut dis-check-aof durchführen, um die AOF-Datei zu reparieren. Der Standardwert ist ja.

12. LUA-SCRIPTING

1Einführung in die Redis-Konfigurationsdatei

①, lua-time-limit: Die maximale Zeit für die Ausführung eines Lua-Skripts, in ms . Der Standardwert ist 5000.

13. REDIS CLUSTER

1Einführung in die Redis-Konfigurationsdatei

①, Cluster-fähig: Cluster-Schalter, der Standardwert ist nicht um das Clustermodell zu aktivieren.

②, Cluster-Konfigurationsdatei: Der Name der Cluster-Konfigurationsdatei. Jeder Knoten verfügt über eine Cluster-bezogene Konfigurationsdatei, die Cluster-Informationen dauerhaft speichert. Diese Datei erfordert keine manuelle Konfiguration. Diese Konfigurationsdatei wird von Redis generiert und aktualisiert. Jeder Redis-Clusterknoten erfordert eine separate Konfigurationsdatei. Bitte stellen Sie sicher, dass kein Konflikt mit dem Namen der Konfigurationsdatei in dem System besteht, auf dem die Instanz ausgeführt wird. Die Standardkonfiguration ist nodes-6379.conf.

③, Cluster-Node-Timeout: Der Wert kann auf 15000 konfiguriert werden. Der Schwellenwert für die Zeitüberschreitung der Knotenverbindung, die Anzahl der Millisekunden für die Zeitüberschreitung des Clusterknotens

④, Cluster-Slave-Gültigkeitsfaktor: Der Wert kann auf 10 konfiguriert werden. Während des Failovers fordern alle Slaves an, Master zu sein, aber einige Slaves sind möglicherweise für eine gewisse Zeit vom Master getrennt, was dazu führt, dass die Daten zu veraltet sind. Solche Slaves sollten nicht zu Mastern befördert werden. Mit diesem Parameter wird ermittelt, ob der Slave-Knoten zu lange vom Master getrennt war.

Die Beurteilungsmethode lautet: Vergleichen Sie die Slave-Trennungszeit und (Node-Timeout * Slave-Gültigkeitsfaktor) + Repl-Ping-Slave-Periode. Wenn das Knoten-Timeout 30 Sekunden beträgt, und Slave-Gültigkeitsfaktor ist 10, vorausgesetzt, der Standard-Repl-Ping-Slave-Zeitraum beträgt 10 Sekunden. Wenn er also 310 Sekunden überschreitet, versucht der Slave nicht, ein Failover durchzuführen

⑤, Cluster-Migration-Barrier: Der Wert kann als 1 konfiguriert werden. Wenn die Slave-Nummer des Masters größer als dieser Wert ist, kann der Slave auf andere isolierte Master migriert werden. Wenn dieser Parameter auf 2 gesetzt ist, wird einer seiner Slave-Knoten nur dann versuchen, zu migrieren, wenn ein Master-Knoten über zwei funktionierende Slave-Knoten verfügt . .

⑥, Cluster-Require-Full-Coverage: Standardmäßig sind alle Slots im Cluster für Knoten verantwortlich, und nur wenn der Cluster-Status in Ordnung ist, können Dienste bereitgestellt werden. Auf „Nein“ setzen, um Dienste bereitzustellen, wenn nicht alle Slots zugewiesen sind. Es wird nicht empfohlen, diese Konfiguration zu aktivieren, da dies dazu führt, dass der Master der kleinen Partition während der Partitionierung immer Schreibanforderungen akzeptiert, was für lange Zeit zu Dateninkonsistenzen führt.

Weitere Redis-Kenntnisse finden Sie in der Spalte Redis-Datenbank-Tutorial.

Das obige ist der detaillierte Inhalt vonEinführung in die Redis-Konfigurationsdatei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen