Inhaltsverzeichnis
名词解释--集群
redis集群要求
mac 环境下搭建本地redis集群
1. 下载安装redis
2. 通过redis配置集群环境
Begriffserklärung – ClusterCluster bezieht sich im Allgemeinen auf einen Servercluster, der sich von einem verteilten System unterscheidet. Es handelt sich um eine Gruppe vieler Server, die zusammengefasst sind um den gleichen Dienst bereitzustellen. Es sieht so aus, als gäbe es nur einen Server. Der Cluster kann mehrere Computer für Parallel Computing " >. Daher ist es zwingend erforderlich, eine Clusterlösung zu verwenden oder Redis-Instanzen hinzuzufügen.

Begriffserklärung – Cluster

Cluster bezieht sich im Allgemeinen auf einen Servercluster, der sich von einem verteilten System unterscheidet. Es handelt sich um eine Gruppe vieler Server, die zusammengefasst sind um den gleichen Dienst bereitzustellen. Es sieht so aus, als gäbe es nur einen Server. Der Cluster kann mehrere Computer für
Parallel Computing
Redis-Cluster-Anforderungen
Erstellen Sie einen lokalen Redis-Cluster in einer Mac-Umgebung
4. 相关命令
客户端使用 ioredis 框架接入集群
使用bull框架(redis 队列)
问题处理
结语
Heim Web-Frontend js-Tutorial Erfahren Sie mehr über die Verwendung der Redis-Clusterfunktion im Knoten [detaillierte Konfiguration]

Erfahren Sie mehr über die Verwendung der Redis-Clusterfunktion im Knoten [detaillierte Konfiguration]

Mar 30, 2022 pm 08:23 PM
node redis集群

Wie verwende ich die Redis-Cluster-Funktion im Knoten? Der folgende Artikel gibt Ihnen eine detaillierte Erklärung der Redis-Cluster-Konfiguration basierend auf node. Ich hoffe, er wird Ihnen hilfreich sein!

Erfahren Sie mehr über die Verwendung der Redis-Clusterfunktion im Knoten [detaillierte Konfiguration]

Bezüglich der Verwendung der redis-Clusterfunktion in nodejsnodejs中使用redis集群功能,没有找到一篇比较完整且通俗易懂的文章,因此自己在开发调试的过程中也走了不少弯路。

本文会详细介绍了在本地如何搭建redis集群、在客户端如何使用集群、在搭建过程中遇到的问题和错误汇总并说明,以避免下次使用的时候再走弯路,提高开发、工作效率。

使用集群的背景是:在Redis单例模式下随着用户量、访问量的提高,qps值急剧上涨??,大量的io操作导致某一时刻占满cpu(100%),随时有宕机的危险,同时通过批量处理redis等方式也是治标不治本,无法突破服务器性能的瓶颈。因此使用集群方案或增加redis实例就势在必行。

名词解释--集群

集群一般是指服务器集群,区别于分布式系统,是将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。(在redis3.0之前一般使用的都是 哨兵模式,但 哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般)

redis集群要求

由于投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群,因此Redis集群至少需要3个节点。

要保证集群的高可用、需要每个节点都有从节点(也就是备份节点),所以Redis集群至少需要6台服务器。 (三主三从、三存三取、高可用、可备份)

当然,我们在本地调试时不可能用这么多服务器,因此我们可以在本地模拟运行6个redis实例,事实上生产环境的Redis集群搭建和这里基本上一样。

mac 环境下搭建本地redis集群

1. 下载安装redis

可以在官网选择安装,也可以用命名行安装

#安装
brew install redis
#启动
redis-server
#进入redis客户端
redis-cli
Nach dem Login kopieren

2. 通过redis配置集群环境

首先要找到redis配置文件的位置

  • brew list redis # 查看redis安装的位置
  • cd /opt/homebrew/Cellar/redis/6.2.4 # 根据位置进入版本号所在的文件夹
  • open . # 打开文件夹
  • Xcode.app打开homebrew.mxcl.redis.plist, 即可找到redis.conf所在的位置,如下所示:

Erfahren Sie mehr über die Verwendung der Redis-Clusterfunktion im Knoten [detaillierte Konfiguration]

Erfahren Sie mehr über die Verwendung der Redis-Clusterfunktion im Knoten [detaillierte Konfiguration]

创建六个服务配置文件

cd /opt/homebrew/etc/(上一步找到的配置文件目录)

# 需要在 /opt/homebrew/etc/ 路径下
mkdir -p redis/cluster/7000
mkdir -p redis/cluster/7001
mkdir -p redis/cluster/7002
mkdir -p redis/cluster/7003
mkdir -p redis/cluster/7004
mkdir -p redis/cluster/7005
Nach dem Login kopieren

修改配置文件

/opt/homebrew/etc/redis.conf路径下的配置文件不用去修改, 只要将其copy到上面创建的 redis/cluster/7000目录下,然后再修改,步骤如下

  • 先复制一份配置文件修改
cd /opt/homebrew/etc/ # 进入配置文件目录
cp redis.conf redis/cluster/7000/7000.conf
code redis/cluster/7000/7000.conf # 用编辑器打开或者用vim打开配置文件来进行修改
Nach dem Login kopieren
  • 进入到7000.conf后,修改以下属性
# Redis端口号(7000-7005每个配置文件都要修改)
port 7000  

# 开启集群模式运行
cluster-enabled yes   

# 集群内部配置文件配置文件路径,默认nodes-6379.conf(7000-7005每个配置文件都要修改)
cluster-config-file nodes-7000.conf 

# 节点间通信的超时时间
cluster-node-timeout 5000  

# 数据持久化
appendonly yes
Nach dem Login kopieren
  • 将7000.conf复制到每个redis服务的目录下
cd /opt/homebrew/etc/redis/cluster # 进入配置文件目录

cp 7000/7000.conf 7001/7001.conf
cp 7000/7000.conf 7002/7002.conf
cp 7000/7000.conf 7003/7003.conf
cp 7000/7000.conf 7004/7004.conf
cp 7000/7000.conf 7005/7005.conf
Nach dem Login kopieren
  • 再修改7001.conf-7005.conf每个配置文件的port和cluster-config-file属性

注意:每个配置文件必需配置不一样的port和cluster-config-file值(否则集群不会生效),上面是以端口区分。

通过find /opt/homebrew -name nodes-7000.conf habe ich keinen relativ vollständigen und leicht verständlichen Artikel gefunden, also bin ich dabei Auch beim Entwickeln und Debuggen habe ich viele Umwege gemacht. In diesem Artikel wird detailliert beschrieben, wie ein Redis-Cluster lokal erstellt wird, wie der Cluster auf dem Client verwendet wird, und die während des Erstellungsprozesses aufgetretenen Probleme und Fehler werden zusammengefasst und erläutert, um beim nächsten Mal Umwege zu vermeiden und Verbesserungen vorzunehmen Entwicklung, Arbeitseffizienz.


Der Hintergrund der Verwendung des Clusters ist: Im Redis-Singleton-Modus steigt der QPS-Wert mit zunehmender Anzahl von Benutzern und Besuchen stark an und führt zu einer großen Anzahl von io-Vorgängen Wenn der zu einem bestimmten Zeitpunkt voll ist >CPU(100%), besteht jederzeit die Gefahr eines Ausfalls. Gleichzeitig sind die Stapelverarbeitung von Redis und anderen Methoden nur eine vorübergehende Lösung die Grundursache und kann den Engpass der Serverleistung nicht überwinden

. Daher ist es zwingend erforderlich, eine Clusterlösung zu verwenden oder Redis-Instanzen hinzuzufügen.

Begriffserklärung – Cluster

Cluster bezieht sich im Allgemeinen auf einen Servercluster, der sich von einem verteilten System unterscheidet. Es handelt sich um eine Gruppe vieler Server, die zusammengefasst sind um den gleichen Dienst bereitzustellen. Es sieht so aus, als gäbe es nur einen Server. Der Cluster kann mehrere Computer für Parallel Computing

um eine sehr hohe Rechengeschwindigkeit zu erreichen, können Sie auch mehrere Computer verwenden Backup

, sodass das gesamte System weiterhin normal laufen kann, wenn eine Maschine kaputt geht. (

Vor redis3.0 🎜 🎜Sentinel-Modus wurde im Allgemeinen verwendet, aber 🎜 🎜Sentinels Konfiguration ist etwas komplex und seine Leistung und hohe Verfügbarkeit sind in allen Aspekten durchschnittlich 🎜)🎜

Redis-Cluster-Anforderungen

🎜Da der Voting-Fehlertoleranzmechanismus erfordert, dass mehr als die Hälfte der Knoten annimmt, dass ein Knoten ausgefallen ist, ist der Knoten ausgefallen, sodass 2 Knoten keinen Cluster bilden können, sodass der Redis-Cluster mindestens 3 benötigt Knoten. 🎜🎜Um die hohe Verfügbarkeit des Clusters sicherzustellen, muss jeder Knoten über einen Slave-Knoten (d. h. einen Backup-Knoten) verfügen, sodass der Redis-Cluster mindestens 6 Server benötigt. 🎜(Drei Master und drei Slaves, drei Einzahlungen und drei Abrufe, hohe Verfügbarkeit, Backup)🎜🎜🎜Natürlich ist es für uns unmöglich, beim lokalen Debuggen so viele Server zu verwenden, sodass wir die Ausführung von 6 Redis< simulieren können /code>Beispiel: 🎜Tatsächlich ist das Redis-Cluster-Setup in der Produktionsumgebung im Wesentlichen das gleiche wie hier. 🎜🎜<h2 id="Erstellen-Sie-einen-lokalen-Redis-Cluster-in-einer-Mac-Umgebung">Erstellen Sie einen lokalen Redis-Cluster in einer Mac-Umgebung</h2><h3 data-id="heading-4">🎜1 Laden Sie Redis herunter und installieren Sie es.🎜🎜🎜Sie können Wählen Sie die Installation auf der offiziellen Website aus. Sie können auch die benannte Zeile zum Installieren verwenden. 🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'># start.sh 文件 #!/bin/sh redis-server /opt/homebrew/etc/redis/cluster/7000/7000.conf &amp; redis-server /opt/homebrew/etc/redis/cluster/7001/7001.conf &amp; redis-server /opt/homebrew/etc/redis/cluster/7002/7002.conf &amp; redis-server /opt/homebrew/etc/redis/cluster/7003/7003.conf &amp; redis-server /opt/homebrew/etc/redis/cluster/7004/7004.conf &amp; redis-server /opt/homebrew/etc/redis/cluster/7005/7005.conf &amp; # stop.sh 文件 #!/bin/sh redis-cli -p 7000 shutdown &amp; redis-cli -p 7001 shutdown &amp; redis-cli -p 7002 shutdown &amp; redis-cli -p 7003 shutdown &amp; redis-cli -p 7004 shutdown &amp; redis-cli -p 7005 shutdown &amp;</pre><div class="contentsignin">Nach dem Login kopieren</div></div><div class="contentsignin">Nach dem Login kopieren</div></div><h3 data-id="heading-5">🎜2 Konfigurieren Sie die Clusterumgebung über Redis. Suchen Sie zunächst den Speicherort Redis-Konfigurationsdatei🎜🎜<ul><li> <code>brew list redis # Überprüfen Sie den Speicherort der Redis-Installation
  • cd /opt/homebrew/Cellar/redis/6.2. 4 # Geben Sie die Versionsnummer basierend auf dem Speicherort ein. Ordner
  • öffnen # Öffnen Sie den Ordner
  • Verwenden Sie Xcode.app< /code> um <code>homebrew.mxcl.redis .plist zu öffnen, finden Sie den Speicherort von redis.conf, wie unten gezeigt:
  • 🎜 Erfahren Sie mehr über die Verwendung der Redis-Clusterfunktion im Knoten [detaillierte Konfiguration]🎜🎜Erfahren Sie mehr über die Verwendung der Redis-Clusterfunktion im Knoten [detaillierte Konfiguration]🎜🎜🎜Erstellen Sie sechs Dienstkonfigurationsdateien 🎜🎜🎜cd /opt/homebrew/ etc/ (das im vorherigen Schritt gefundene Konfigurationsdateiverzeichnis)🎜
    redis-cli -p 7000 # 单个客户端启动
    redis-server 7000/7000.conf  # 启动单个服务端
    redis-cli -p 7000 shutdown # 关闭服务端
    sudo chmod +x start.sh # 开启脚本执行权限
    
    # 设置redis主从关系(三主三从)
    redis-cli --cluster create  --cluster-replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
    
    cluster nodes #查看集群节点情况(进入某个客户端执行)
    cluster info #查看集群信息(进入某个客户端执行)
    
    查看所有key值:keys *
    
    删除指定索引的值:del key
    
    清空整个 Redis 服务器的数据:flushall 
    
    清空当前库中的所有 key:flushdb
    Nach dem Login kopieren
    Nach dem Login kopieren
    🎜🎜Ändern Sie die Konfigurationsdatei🎜🎜🎜Die Konfigurationsdatei unter dem Pfad / opt/homebrew/etc/redis.conf muss nicht geändert werden. Kopieren Sie es einfach in das oben erstellte Verzeichnis redis/cluster/7000 und ändern Sie es wie folgt🎜
    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 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Chat -Befehle und wie man sie benutzt
    4 Wochen 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 löschen Sie einen Knoten in NVM So löschen Sie einen Knoten in NVM Dec 29, 2022 am 10:07 AM

    So löschen Sie einen Knoten mit nvm: 1. Laden Sie „nvm-setup.zip“ herunter und installieren Sie es auf dem Laufwerk C. 2. Konfigurieren Sie Umgebungsvariablen und überprüfen Sie die Versionsnummer mit dem Befehl „nvm -v“. install“-Befehl Knoten installieren; 4. Löschen Sie den installierten Knoten über den Befehl „nvm uninstall“.

    So verwenden Sie Express für den Datei-Upload im Knotenprojekt So verwenden Sie Express für den Datei-Upload im Knotenprojekt Mar 28, 2023 pm 07:28 PM

    Wie gehe ich mit dem Datei-Upload um? Der folgende Artikel stellt Ihnen vor, wie Sie Express zum Hochladen von Dateien im Knotenprojekt verwenden. Ich hoffe, er ist hilfreich für Sie!

    Eine ausführliche Analyse des Prozessmanagement-Tools „pm2' von Node Eine ausführliche Analyse des Prozessmanagement-Tools „pm2' von Node Apr 03, 2023 pm 06:02 PM

    In diesem Artikel stellen wir Ihnen das Prozessmanagement-Tool „pm2“ von Node vor und sprechen darüber, warum PM2 benötigt wird und wie Sie PM2 installieren und verwenden. Ich hoffe, dass es für alle hilfreich ist!

    PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? Mar 05, 2025 pm 05:57 PM

    Detaillierte Erläuterungs- und Installationshandbuch für Pinetwork -Knoten In diesem Artikel wird das Pinetwork -Ökosystem im Detail vorgestellt - PI -Knoten, eine Schlüsselrolle im Pinetwork -Ökosystem und vollständige Schritte für die Installation und Konfiguration. Nach dem Start des Pinetwork -Blockchain -Testnetzes sind PI -Knoten zu einem wichtigen Bestandteil vieler Pioniere geworden, die aktiv an den Tests teilnehmen und sich auf die bevorstehende Hauptnetzwerkveröffentlichung vorbereiten. Wenn Sie Pinetwork noch nicht kennen, wenden Sie sich bitte an was Picoin ist? Was ist der Preis für die Auflistung? PI -Nutzung, Bergbau und Sicherheitsanalyse. Was ist Pinetwork? Das Pinetwork -Projekt begann 2019 und besitzt seine exklusive Kryptowährung PI -Münze. Das Projekt zielt darauf ab, eine zu erstellen, an der jeder teilnehmen kann

    Lassen Sie uns darüber sprechen, wie Sie mit pkg Node.js-Projekte in ausführbare Dateien packen. Lassen Sie uns darüber sprechen, wie Sie mit pkg Node.js-Projekte in ausführbare Dateien packen. Dec 02, 2022 pm 09:06 PM

    Wie packe ich die ausführbare Datei von nodejs mit pkg? Im folgenden Artikel erfahren Sie, wie Sie mit pkg ein Node-Projekt in eine ausführbare Datei packen. Ich hoffe, dass er Ihnen weiterhilft!

    Was tun, wenn npm node gyp ausfällt? Was tun, wenn npm node gyp ausfällt? Dec 29, 2022 pm 02:42 PM

    npm node gyp schlägt fehl, weil „node-gyp.js“ nicht mit der Version von „Node.js“ übereinstimmt. Die Lösung ist: 1. Löschen Sie den Knotencache über „npm cache clean -f“ 2. Über „npm install -“ g n“ Installieren Sie das n-Modul. 3. Installieren Sie die Version „node v12.21.0“ über den Befehl „n v12.21.0“.

    Tokenbasierte Authentifizierung mit Angular und Node Tokenbasierte Authentifizierung mit Angular und Node Sep 01, 2023 pm 02:01 PM

    Die Authentifizierung ist einer der wichtigsten Teile jeder Webanwendung. In diesem Tutorial werden tokenbasierte Authentifizierungssysteme und ihre Unterschiede zu herkömmlichen Anmeldesystemen erläutert. Am Ende dieses Tutorials sehen Sie eine voll funktionsfähige Demo, die in Angular und Node.js geschrieben wurde. Traditionelle Authentifizierungssysteme Bevor wir zu tokenbasierten Authentifizierungssystemen übergehen, werfen wir einen Blick auf traditionelle Authentifizierungssysteme. Der Benutzer gibt seinen Benutzernamen und sein Passwort im Anmeldeformular ein und klickt auf „Anmelden“. Nachdem Sie die Anfrage gestellt haben, authentifizieren Sie den Benutzer im Backend, indem Sie die Datenbank abfragen. Wenn die Anfrage gültig ist, wird eine Sitzung mit den aus der Datenbank erhaltenen Benutzerinformationen erstellt und die Sitzungsinformationen werden im Antwortheader zurückgegeben, sodass die Sitzungs-ID im Browser gespeichert wird. Bietet Zugriff auf Anwendungen, die unterliegen

    Was ist ein Single-Sign-On-System? Wie implementiert man es mit NodeJS? Was ist ein Single-Sign-On-System? Wie implementiert man es mit NodeJS? Feb 24, 2023 pm 07:33 PM

    Was ist ein Single-Sign-On-System? Wie implementiert man es mit NodeJS? Im folgenden Artikel erfahren Sie, wie Sie mit Node ein Single-Sign-On-System implementieren. Ich hoffe, dass er Ihnen weiterhilft!

    See all articles