Inhaltsverzeichnis
1. Hören Sie auf, SCHLÜSSEL zu verwenden.
2. Finden Sie den Übeltäter heraus, der Redis verlangsamt.
3、将 Redis-Benchmark 结果作为参考,而不要一概而论
4、Hashes 是你的最佳选择
5、设置 key 值的存活时间
6. Wählen Sie die passende Recyclingstrategie
7. Wenn Ihre Daten wichtig sind, verwenden Sie bitte Try/Except
8. Eine Instanz nicht erschöpfen
9. Sind je mehr Kerne desto besser? !
10. Hohe Verfügbarkeit
Heim Betrieb und Instandhaltung Betrieb und Wartung von Linux Redis-Erfahrung, die Sie für den Betrieb und die Wartung von Linux benötigen

Redis-Erfahrung, die Sie für den Betrieb und die Wartung von Linux benötigen

Aug 04, 2023 pm 04:17 PM
linux redis


Redis ist in der aktuellen Technologie-Community sehr beliebt. Redis hat von einem kleinen persönlichen Projekt von Antirez einen langen Weg zurückgelegt und ist zum Industriestandard für die In-Memory-Datenspeicherung geworden. Die daraus resultierenden Best Practices ermöglichen es den meisten Menschen, Redis korrekt zu verwenden.

Im Folgenden werden wir 10 Erfahrungen mit der korrekten Verwendung von Redis untersuchen.

1. Hören Sie auf, SCHLÜSSEL zu verwenden.

Okay, diesen Artikel mit der Infragestellung dieses Befehls zu beginnen, ist vielleicht kein guter Weg, aber es könnte tatsächlich der wichtigste Punkt sein. Wenn wir auf die Statistiken einer Redis-Instanz achten, geben wir oft schnell den Befehl „KEYS *“ ein, damit die Schlüsselinformationen klar angezeigt werden. Um fair zu sein, aus Programmiersicht neigen wir dazu, Pseudocode wie den folgenden zu schreiben:

for key in'keys *':
doAllTheThings() 
Nach dem Login kopieren

Aber wenn Sie 13 Millionen Schlüssel haben, wird die Ausführungsgeschwindigkeit langsamer. Da die zeitliche Komplexität des Befehls KEYS O(n) beträgt, wobei n die Anzahl der zurückzugebenden Schlüssel ist, hängt die Komplexität dieses Befehls von der Größe der Datenbank ab. Und während der Ausführung dieses Vorgangs können in Ihrer Instanz keine anderen Befehle ausgeführt werden.

Als alternativen Befehl sehen Sie sich SCAN an, mit dem Sie es benutzerfreundlicher machen können ... SCAN scannt die Datenbank in einer inkrementellen Iteration. Dieser Vorgang wird basierend auf dem Iterator des Cursors ausgeführt, sodass Sie ihn jederzeit nach Belieben anhalten oder fortsetzen können.

2. Finden Sie den Übeltäter heraus, der Redis verlangsamt.

Da Redis nicht über sehr detaillierte Protokolle verfügt, ist es sehr schwierig zu wissen, was in der Redis-Instanz geschieht. Glücklicherweise bietet Redis ein Befehlsstatistiktool wie das folgende:

127.0.0.1:6379> INFO commandstats

# Commandstats

cmdstat_get:calls=78,usec=608,usec_per_call=7.79

cmdstat_setex:calls=5,usec=71,usec_per_call=14.20

cmdstat_keys:calls=2,usec=42,usec_per_call=21.00

cmdstat_info:calls=10,usec=1931,usec_per_call=193.10
Nach dem Login kopieren

Mit diesem Tool können Sie eine Momentaufnahme aller Befehlsstatistiken anzeigen, z. B. wie oft der Befehl ausgeführt wurde und wie viele Millisekunden für die Ausführung benötigt wurden Befehl (die Gesamtzeit jedes Befehls und die durchschnittliche Zeit) führen Sie einfach den Befehl CONFIG RESETSTAT aus, um ihn zurückzusetzen, sodass Sie ein völlig neues statistisches Ergebnis erhalten.

3、将 Redis-Benchmark 结果作为参考,而不要一概而论

Redis 之父 Salvatore 就说过:“通过执行GET/SET命令来测试Redis就像在雨天检测法拉利的雨刷清洁镜子的效果”。很多时候人们跑到我这里,他们想知道为什么自己的Redis-Benchmark统计的结果低于最优结果 。但我们必须要把各种不同的真实情况考虑进来,例如:

  • 可能受到哪些客户端运行环境的限制?
  • 是同一个版本号吗?
  • 测试环境中的表现与应用将要运行的环境是否一致?

Redis-Benchmark的测试结果提供了一个保证你的 Redis-Server 不会运行在非正常状态下的基准点,但是你永远不要把它作为一个真实的“压力测试”。压力测试需要反应出应用的运行方式,并且需要一个尽可能的和生产相似的环境。

4、Hashes 是你的最佳选择

以一种优雅的方式引入 hashes 吧。hashes 将会带给你一种前所未有的体验。之前我曾看到过许多类似于下面这样的key结构:

foo:first_name

foo:last_name

foo:address
Nach dem Login kopieren

上面的例子中,foo 可能是一个用户的用户名,其中的每一项都是一个单独的 key。这就增加了 犯错的空间,和一些不必要的 key。使用 hash 代替吧,你会惊奇地发现竟然只需要一个 key :

127.0.0.1:6379> HSET foo first_name 'Joe'

(integer) 1

127.0.0.1:6379> HSET foo last_name 'Engel'

(integer) 1

127.0.0.1:6379> HSET foo address '1 Fanatical Pl'

(integer) 1

127.0.0.1:6379> HGETALL foo

1) 'first_name'

2) 'Joe'

3) 'last_name'

4) 'Engel'

5) 'address'

6) '1 Fanatical Pl'

127.0.0.1:6379> HGET foo first_name

'Joe'
Nach dem Login kopieren

5、设置 key 值的存活时间

无论什么时候,只要有可能就利用key超时的优势。一个很好的例子就是储存一些诸如临时认证key之类的东西。当你去查找一个授权key时——以OAUTH为例——通常会得到一个超时时间。这样在设置key的时候,设成同样的超时时间,Redis就会自动为你清除!而不再需要使用KEYS *来遍历所有的key了,怎么样很方便吧?

6. Wählen Sie die passende Recyclingstrategie

Nachdem wir nun über das Thema Schlüsselfreigabe gesprochen haben, sprechen wir über die Recyclingstrategie. Wenn der Speicherplatz der Redis-Instanz voll ist, wird versucht, einige Schlüssel zurückzugewinnen. Abhängig von Ihrer Nutzung empfehle ich dringend die Verwendung der volatile-lru-Strategie – vorausgesetzt, Sie haben ein Timeout für den Schlüssel festgelegt. Wenn Sie jedoch etwas Ähnliches wie einen Cache ausführen und keinen Timeout-Mechanismus für Schlüssel festlegen, können Sie die Verwendung des Recyclingmechanismus allkeys-lru in Betracht ziehen. Mein Vorschlag ist, zunächst zu prüfen, was hier möglich ist.

7. Wenn Ihre Daten wichtig sind, verwenden Sie bitte Try/Except

Wenn Sie sicherstellen müssen, dass kritische Daten in eine Redis-Instanz gestellt werden können, empfehle ich dringend, sie in einen Try/Except-Block zu legen. Da nahezu alle Redis-Clients die Strategie „Senden und Vergessen“ anwenden, muss häufig geprüft werden, ob ein Schlüssel tatsächlich in der Redis-Datenbank abgelegt wird. In diesem Artikel geht es nicht um die Komplexität des Einfügens von try/expect in Redis-Befehle. Sie müssen lediglich wissen, dass dadurch sichergestellt wird, dass wichtige Daten dort platziert werden, wo sie sein sollten.

8. Eine Instanz nicht erschöpfen

Wenn möglich, verteilen Sie die Arbeitslast auf mehrere Redis-Instanzen. Ab Version 3.0.0 unterstützt Redis Cluster. Mit Redis Cluster können Sie einige Schlüssel, die Master/Slave-Modi enthalten, basierend auf Schlüsselbereichen heraustrennen. Die komplette „Magie“ hinter Clustering finden Sie hier. Wenn Sie jedoch nach Tutorials suchen, sind Sie hier genau richtig. Wenn Clustering keine Option ist, ziehen Sie Namespaces in Betracht und verteilen Sie Ihre Schlüssel auf mehrere Instanzen. Zur Datenverteilung gibt es diesen hervorragenden Testbericht auf der Website redis.io.

9. Sind je mehr Kerne desto besser? !

Natürlich ist es falsch. Redis ist ein Single-Threaded-Prozess und verbraucht selbst bei aktivierter Persistenz nur maximal zwei Kerne. Es sei denn, Sie planen, mehrere Instanzen auf einem einzigen Host auszuführen – hoffentlich nur in einer Entwicklungs- und Testumgebung! ——Ansonsten sind nicht mehr als 2 Kerne für eine Redis-Instanz erforderlich.

10. Hohe Verfügbarkeit

Bisher wurde Redis Sentinel gründlich getestet und von vielen Benutzern in Produktionsumgebungen angewendet (einschließlich ObjectRocket). Wenn Ihre Anwendung stark auf Redis angewiesen ist, müssen Sie eine Hochverfügbarkeitslösung entwickeln, um sicherzustellen, dass sie nicht offline geht. Wenn Sie diese Dinge nicht selbst verwalten möchten, bietet ObjectRocket natürlich eine hochverfügbare Plattform und technischen Support rund um die Uhr. Wenn Sie interessiert sind, können Sie dies in Betracht ziehen.

Das obige ist der detaillierte Inhalt vonRedis-Erfahrung, die Sie für den Betrieb und die Wartung von Linux benötigen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So starten Sie Apache So starten Sie Apache Apr 13, 2025 pm 01:06 PM

Die Schritte zum Starten von Apache sind wie folgt: Installieren Sie Apache (Befehl: sudo apt-Get-Get-Installieren Sie Apache2 oder laden Sie ihn von der offiziellen Website herunter). (Optional, Linux: sudo systemctl

Was tun, wenn der Port Apache80 belegt ist Was tun, wenn der Port Apache80 belegt ist Apr 13, 2025 pm 01:24 PM

Wenn der Port -80 -Port der Apache 80 besetzt ist, lautet die Lösung wie folgt: Finden Sie den Prozess, der den Port einnimmt, und schließen Sie ihn. Überprüfen Sie die Firewall -Einstellungen, um sicherzustellen, dass Apache nicht blockiert ist. Wenn die obige Methode nicht funktioniert, konfigurieren Sie Apache bitte so, dass Sie einen anderen Port verwenden. Starten Sie den Apache -Dienst neu.

So starten Sie den Apache -Server neu So starten Sie den Apache -Server neu Apr 13, 2025 pm 01:12 PM

Befolgen Sie die folgenden Schritte, um den Apache -Server neu zu starten: Linux/MacOS: Führen Sie sudo systemCTL RESTART APache2 aus. Windows: Net Stop Apache2.4 und dann Net Start Apache2.4 ausführen. Führen Sie Netstat -a | Findstr 80, um den Serverstatus zu überprüfen.

Wie man Debian Syslog lernt Wie man Debian Syslog lernt Apr 13, 2025 am 11:51 AM

In diesem Leitfaden werden Sie erfahren, wie Sie Syslog in Debian -Systemen verwenden. Syslog ist ein Schlüsseldienst in Linux -Systemen für Protokollierungssysteme und Anwendungsprotokollnachrichten. Es hilft den Administratoren, die Systemaktivitäten zu überwachen und zu analysieren, um Probleme schnell zu identifizieren und zu lösen. 1. Grundkenntnisse über syslog Die Kernfunktionen von Syslog umfassen: zentrales Sammeln und Verwalten von Protokollnachrichten; Unterstützung mehrerer Protokoll -Ausgabesformate und Zielorte (z. B. Dateien oder Netzwerke); Bereitstellung von Echtzeit-Protokoll- und Filterfunktionen. 2. Installieren und Konfigurieren von Syslog (mit Rsyslog) Das Debian -System verwendet standardmäßig Rsyslog. Sie können es mit dem folgenden Befehl installieren: sudoaptupdatesud

So lösen Sie das Problem, dass Apache nicht gestartet werden kann So lösen Sie das Problem, dass Apache nicht gestartet werden kann Apr 13, 2025 pm 01:21 PM

Apache kann aus den folgenden Gründen nicht beginnen: Konfigurationsdatei -Syntaxfehler. Konflikt mit anderen Anwendungsports. Berechtigungen Ausgabe. Aus dem Gedächtnis. Prozess -Deadlock. Dämonversagen. Selinux -Berechtigungen Probleme. Firewall -Problem. Software -Konflikt.

Läuft das Internet unter Linux? Läuft das Internet unter Linux? Apr 14, 2025 am 12:03 AM

Das Internet stützt sich nicht auf ein einzelnes Betriebssystem, aber Linux spielt eine wichtige Rolle dabei. Linux wird häufig auf Servern und Netzwerkgeräten verwendet und ist für seine Stabilität, Sicherheit und Skalierbarkeit beliebt.

So beheben Sie Apache Schwachstellen So beheben Sie Apache Schwachstellen Apr 13, 2025 pm 12:54 PM

Schritte zur Behebung der Apache -Sicherheitsanfälligkeit umfassen: 1. Bestimmen Sie die betroffene Version; 2. Anwenden von Sicherheitsaktualisierungen; 3. Starten Sie Apache neu; 4. Überprüfen Sie die Fix; 5. Sicherheitsfunktionen aktivieren.

Wie kann ich überprüfen, ob Nginx begonnen wird? Wie kann ich überprüfen, ob Nginx begonnen wird? Apr 14, 2025 pm 12:48 PM

Verwenden Sie unter Linux den folgenden Befehl, um zu überprüfen, ob Nginx gestartet wird: SystemCTL -Status Nginx Richter basierend auf der Befehlsausgabe: Wenn "aktiv: aktiv (lief) angezeigt wird, wird Nginx gestartet. Wenn "Active: Inactive (Dead)" angezeigt wird, wird Nginx gestoppt.

See all articles