Le cluster Redis est un cluster de services distribués composé de plusieurs groupes de nœuds maître-esclave Il possède des fonctionnalités de réplication, de haute disponibilité et de partitionnement. Le cluster Redis peut effectuer les fonctions de suppression de nœuds et de basculement sans sentinelle. Chaque nœud doit être défini en mode cluster. Ce mode cluster n'a pas de nœud central et peut être étendu horizontalement. Selon les documents officiels, il peut être étendu linéairement à des dizaines de milliers de nœuds (la recommandation officielle ne dépasse pas 1 000 nœuds). . Les performances et la haute disponibilité du cluster redis sont meilleures que la version précédente du mode sentinelle, et la configuration du cluster est très simple.

[root@jsy-bj-test00 ~]# yum install -y ruby rubygems
Copier 6 copies du service Redis[work@jsy-bj-test00 ~]$ cp -rp redis redis1
[work@jsy-bj-test00 ~]$ cp -rp redis redis2
[work@jsy-bj-test00 ~]$ cp -rp redis redis3
Modification du fichier de configuration Redis#六个节点需做如下更改[work@jsy-bj-test00 ~]$ vim redis1/etc/redis.conf
[work@jsy-bj-test00 ~]$ sed -i 's/port 6379/port 6380/g' redis5/etc/redis.conf #修改端口 port 6380#打开注释,开启集群模式cluster-enabled yes#集群的配置文件cluster-config-file nodes-6380.conf
[work@jsy-bj-test00 ~]$ sed -i 's/cluster-config-file nodes-6379.conf/cluster-config-file nodes-6380.conf/g' redis5/etc/redis.conf#pidfile文件pidfile /var/run/redis_6380.pid
[work@jsy-bj-test00 ~]$ sed -i 's/pidfile \/var\/run\/redis_6380.pid/pidfile \/var\/run\/redis_6380.pid/g' redis5/etc/redis.conf#日志文件 logfile "/home/work/logs/redis/6380.log"[work@jsy-bj-test00 ~]$ sed -i 's/logfile "\/home\/work\/logs\/redis\/6379.log"/logfile "\/home\/work\/logs\/redis\/6380.log"/g' redis5/etc/redis.conf#rdb持久化文件 dbfilename dump6380.rdb
[work@jsy-bj-test00 ~]$ sed -i 's/dbfilename dump6379.rdb/dbfilename dump6380.rdb/g' redis5/etc/redis.conf#请求超时,单位毫秒cluster-node-timeout 5000#开启aof持久化方式appendonly yes#配置持久化文件appendfilename "appendonly6379.aof"[work@jsy-bj-test00 ~]$ sed -i 's/appendfilename "appendonly6379.aof"/appendfilename "appendonly6383.aof"/g' redis5/etc/redis.conf
Écrire un cluster démarrage script et script d'arrêt
Démarrez le script start_all.sh/home/work/redis/bin/redis-server /home/work/redis/etc/redis.conf & /home/work/redis/bin/redis-server /home/work/redis/etc/redis6380.conf & /home/work/redis/bin/redis-server /home/work/redis/etc/redis6381.conf & /home/work/redis/bin/redis-server /home/work/redis/etc/redis6382.conf & /home/work/redis/bin/redis-server /home/work/redis/etc/redis6383.conf & /home/work/redis/bin/redis-server /home/work/redis/etc/redis6384.conf &Fermez le script stop_all.sh
/home/work/redis/bin/redis-cli -p 6379 -a test shutdown /home/work/redis/bin/redis-cli -p 6380 -a test shutdown /home/work/redis/bin/redis-cli -p 6381 -a test shutdown /home/work/redis/bin/redis-cli -p 6382 -a test shutdown /home/work/redis/bin/redis-cli -p 6383 -a test shutdown /home/work/redis/bin/redis-cli -p 6384 -a test shutdown
Exécutez la commande de création de cluster
L'erreur suivante est signalée[work@jsy-bj-test00 src]$ ./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError) from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require'from ./redis-trib.rb:25:in `‘Cause : L'erreur lors de l'installation de l'interface Redis, c'est que la version Ruby est trop basse
[root@jsy-bj-test00 ~]# gem install redisFetching: redis-4.1.3.gem (100%) ERROR: Error installing redis: redis requires Ruby version >= 2.3.0.La solution est de télécharger la dernière version stable du code source depuis le site officiel http://www.ruby-lang.org/en/downloads/, compiler et installer
[work@jsy-bj-test00 soft]$ tar zxvf ruby-2.7.0.tar.gz [work@jsy-bj-test00 soft]$ cd ruby-2.7.0 [work@jsy-bj-test00 ruby-2.7.0]$ ./configure --prefix=/home/work/ruby && make && make installInstaller l'interface Redis
[work@jsy-bj-test00 bin]$ gem install redisExécuter à nouveau la commande de création de cluster
[work@jsy-bj-test00 src]$ ./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 >>> Creating cluster >>> Performing hash slots allocation on 6 nodes... ...... >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join... >>> Performing Cluster Check (using node 127.0.0.1:6379) ...... [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.La création est réussie, afficher l'état du cluster
[work@jsy-bj-test00 ~]$ ./redis/bin/redis-cli -h 127.0.0.1 -p 6379 -c 127.0.0.1:6379> cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 cluster_current_epoch:6 cluster_my_epoch:1 cluster_stats_messages_sent:627 cluster_stats_messages_received:627Afficher les informations sur les nœuds de cluster
127.0.0.1:6379> cluster nodes 565246bf31d8e05e464db7455521b1a9f165a9cd 127.0.0.1:6380 master - 0 1578447776230 2 connected 5461-10922 1b99b2a1e4b530501476ab48422c75f30423fd19 127.0.0.1:6383 slave 565246bf31d8e05e464db7455521b1a9f165a9cd 0 1578447778233 5 connected 735ad5778458059316794b9378d4b81aaff20322 127.0.0.1:6379 myself,master - 0 0 1 connected 0-5460 757c2c11ecebfc607aa10a6877e348d0e2da484f 127.0.0.1:6381 master - 0 1578447777732 3 connected 10923-16383 f22efc2bcfcd11cee6487ebc9c75de3b59f5e1d0 127.0.0.1:6382 slave 735ad5778458059316794b9378d4b81aaff20322 0 1578447776230 4 connected b8bba94b9647caa8600363144fd7108082e45f56 127.0.0.1:6384 slave 757c2c11ecebfc607aa10a6877e348d0e2da484f 0 1578447777232 6 connected#这是很重要的命令,我们需要关心的信息有:#第一个参数:节点ID#第二个参数:IP:PORT@TCP 这里一个坑,jedis-2.9.0之前的版本解析@出错#第三个参数:标志(Master,Slave,Myself,Fail...)#第四个参数:如果是从机则是主机的节点ID#最后两个参数:连接的状态和槽的位置。Commandes liées à la gestion du cluster
#集群增加节点,先复制两个配置文件,并修改配置文件内容[work@jsy-bj-test00 etc]$ cp -p redis.conf redis6385.conf
[work@jsy-bj-test00 etc]$ cp -p redis.conf redis6386.conf
[work@jsy-bj-test00 etc]$ sed -i 's/6379/6385/g' redis6385.conf
[work@jsy-bj-test00 etc]$ sed -i 's/6379/6386/g' redis6386.conf
Démarrer 6385 nœuds
[work@jsy-bj-test00 bin]$ ./redis-server /home/work/redis/etc/redis6385.conf &Connectez doucement l'outil de gestion de cluster au bac de redis
[work@jsy-bj-test00 bin]$ ln -s /home/work/soft/redis-3.2.11/src/redis-trib.rb /home/work/redis/bin/redis-trib.rbAjoutez de nouveaux nœuds au maître du cluster
[work@jsy-bj-test00 bin]$ ./redis-trib.rb add-node 127.0.0.1:6385 127.0.0.1:6379 >>> Adding node 127.0.0.1:6385 to cluster 127.0.0.1:6379 >>> Performing Cluster Check (using node 127.0.0.1:6379) ...... [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. >>> Send CLUSTER MEET to node 127.0.0.1:6385 to make it join the cluster. [OK] New node added correctly.Affichez l'état du cluster, emplacement non alloué
[work@jsy-bj-test00 bin]$ ./redis-cli -h 127.0.0.1 -p 6379 -c cluster nodes d00d05f601df0b69df0c2cc532b636d2c83347be 127.0.0.1:6385 master - 0 1578450280191 0 connectedAttribuez un emplacement au nœud 6385
[work@jsy-bj-test00 bin]$ ./redis-trib.rb reshard 127.0.0.1:6379 >>> Performing Cluster Check (using node 127.0.0.1:6379) ...... [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. How many slots do you want to move (from 1 to 16384)? 500 What is the receiving node ID? d00d05f601df0b69df0c2cc532b636d2c83347be Please enter all the source node IDs. Type 'all' to use all the nodes as source nodes for the hash slots. Type 'done' once you entered all the source nodes IDs. Source node #1:allDo you want to proceed with the proposed reshard plan (yes/no)? yes#第一个参数:需要移动槽的个数,#第二个参数:接受槽的节点ID,#第三个参数:输入"all"表示从所有原节点中获取槽,#第四个参数:输入"yes"开始移动槽到目标结点id#查看6385节点信息,已经分配槽位[work@jsy-bj-test00 bin]$ ./redis-cli -h 127.0.0.1 -p 6379 -c cluster nodes d00d05f601df0b69df0c2cc532b636d2c83347be 127.0.0.1:6385 master - 0 1578452422167 7 connected 0-165 5461-5627 10923-11088Ajoutez un nœud esclave, démarrez 6386 nœud et rejoignez le cluster
[work@jsy-bj-test00 bin]$ ./redis-server /home/work/redis/etc/redis6386.conf & [work@jsy-bj-test00 bin]$ ./redis-trib.rb add-node --slave --master-id d00d05f601df0b69df0c2cc532b636d2c83347be 127.0.0.1:6386 127.0.0.1:6385 >>> Adding node 127.0.0.1:6386 to cluster 127.0.0.1:6385 >>> Performing Cluster Check (using node 127.0.0.1:6385) ...... [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. >>> Send CLUSTER MEET to node 127.0.0.1:6386 to make it join the cluster. Waiting for the cluster to join. >>> Configure node as replica of 127.0.0.1:6385. [OK] New node added correctly.Afficher l'état du nœud 6386
[work@jsy-bj-test00 bin]$ ./redis-cli -h 127.0.0.1 -p 6379 -c cluster nodes 6845878cbef3fe25f19a70a8db3eb29abb1b9ea6 127.0.0.1:6386 slave d00d05f601df0b69df0c2cc532b636d2c83347be 0 1578452805439 7 connectedSupprimer le nœud
[work@jsy-bj-test00 bin]$ ./redis-trib.rb del-node 127.0.0.1:6383 1b99b2a1e4b530501476ab48422c75f30423fd19 >>> Removing node 1b99b2a1e4b530501476ab48422c75f30423fd19 from cluster 127.0.0.1:6383 >>> Sending CLUSTER FORGET messages to the cluster... >>> SHUTDOWN the node.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Redis est un système de stockage de structure de données de mémoire, principalement utilisé comme base de données, cache et courtier de messages. Ses caractéristiques principales incluent un modèle unique, un multiplexage d'E / S, un mécanisme de persistance, des fonctions de réplication et de clustering. Redis est couramment utilisé dans les applications pratiques pour la mise en cache, le stockage de session et les files d'attente de messages. Il peut améliorer considérablement ses performances en sélectionnant la bonne structure de données, en utilisant des pipelines et des transactions, et en surveillant et en réglage.

La principale différence entre les bases de données Redis et SQL est que Redis est une base de données en mémoire, adaptée aux exigences de performance et de flexibilité élevées; La base de données SQL est une base de données relationnelle, adaptée aux requêtes complexes et aux exigences de cohérence des données. Plus précisément, 1) Redis fournit des services d'accès aux données et de mise en cache à haut débit, prend en charge plusieurs types de données, adaptés à la mise en cache et au traitement des données en temps réel; 2) La base de données SQL gère les données via une structure de table, prend en charge les requêtes complexes et le traitement des transactions et convient à des scénarios tels que le commerce électronique et les systèmes financiers qui nécessitent la cohérence des données.

Redéactsasbothadatastoreandaservice.1) asadatastore, itusin-memorystorage forfastoperations, soutenant Variedatastructures LikeKey-Valuepairs et.

Par rapport aux autres bases de données, Redis présente les avantages uniques suivants: 1) une vitesse extrêmement rapide et les opérations de lecture et d'écriture sont généralement au niveau de la microseconde; 2) prend en charge de riches structures et opérations de données; 3) Scénarios d'utilisation flexibles tels que les caches, les compteurs et publier des abonnements. Lors du choix de Redis ou d'autres bases de données, cela dépend des besoins et des scénarios spécifiques. Redis fonctionne bien dans les applications hautes performances et à faible latence.

Redis joue un rôle clé dans le stockage et la gestion des données, et est devenu le cœur des applications modernes à travers ses multiples structures de données et mécanismes de persistance. 1) Redis prend en charge les structures de données telles que les chaînes, les listes, les collections, les collections ordonnées et les tables de hachage, et convient au cache et à la logique métier complexe. 2) Grâce à deux méthodes de persistance, RDB et AOF, Redis assure un stockage fiable et une récupération rapide des données.

Redis est une base de données NoSQL adaptée à un stockage et à un accès efficaces des données à grande échelle. 1.redis est un système de stockage de structure de données de mémoire open source qui prend en charge plusieurs structures de données. 2. Il fournit des vitesses de lecture et d'écriture extrêmement rapides, adaptées à la mise en cache, à la gestion des sessions, etc. 3.redis prend en charge la persistance et assure la sécurité des données via RDB et AOF. 4. Les exemples d'utilisation incluent les opérations de base de la paire de valeurs de clé et les fonctions de déduplication de collection avancées. 5. Les erreurs courantes incluent les problèmes de connexion, le décalage du type de données et le débordement de la mémoire, vous devez donc faire attention au débogage. 6. Les suggestions d'optimisation des performances comprennent la sélection de la structure des données appropriée et la mise en place de stratégies d'élimination de la mémoire.

Les applications de Redis dans le monde réel comprennent: 1. En tant que système de cache, accélérez la requête de base de données, 2. Pour stocker les données de session des applications Web, 3. Pour implémenter les classements en temps réel, 4. Pour simplifier la livraison de messages comme file d'attente de messages. La polyvalence de Redis et les hautes performances le font briller dans ces scénarios.

Redis se démarque en raison de sa vitesse élevée, de sa polyvalence et de sa riche structure de données. 1) Redis prend en charge les structures de données telles que les chaînes, les listes, les collections, les hachages et les collections ordonnées. 2) Il stocke les données via la mémoire et prend en charge la persistance RDB et AOF. 3) À partir de Redis 6.0, des opérations d'E / S multithread ont été introduites, ce qui a amélioré les performances dans des scénarios de concurrence élevés.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Version Mac de WebStorm
Outils de développement JavaScript utiles

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.
