Maison > Article > base de données > Comment créer un cluster Redis sous Windows
Avant-propos :
Le clustering fait référence à la fourniture du même service en ajoutant le nombre de serveurs, de manière à obtenir un état stable et efficace. Pourquoi utiliser le cluster Redis ? Le cluster Redis peut améliorer les capacités de lecture et d'écriture de Redis.
Nous allons maintenant en apprendre officiellement davantage sur le cluster Redis.
Travail de préparation :
Nécessite 4 composants : Redis, l'environnement d'exécution du langage Ruby, le pilote Redis Ruby redis-xxxx.gem et l'outil pour créer un cluster Redis redis-trib.rb. Utilisez l'outil redis-trib.rb pour créer un cluster Redis Puisque ce fichier est écrit en langage Ruby, vous devez installer l'environnement de développement Ruby et piloter redis-xxxx.gem.
1) Téléchargez le fichier d'installation de Redis : https://github.com/MSOpenTech/redis/releases/, Redis fournit des fichiers de téléchargement aux formats msi et zip, téléchargez le zip ici Formatez la version Redis-x64-3.2.100.
2) Téléchargez le fichier d'installation de Ruby : http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe
3) Téléchargez Redis dans l'environnement Ruby Pilote : https://rubygems.org/gems/redis/versions/3.2.2 Compte tenu de la compatibilité, le téléchargement ici est la version 3.2.2
Remarque : Téléchargez le lien correspondant dans le coin inférieur droit du. page Medium
4) Téléchargez le fichier script ruby redis-trib.rb officiellement fourni par Redis pour créer un cluster Redis Le chemin est le suivant : https:/. /raw.githubusercontent.com/MSOpenTech /redis/3.0/src/redis-trib.rb
Installez Redis
Décompressez simplement le Redis-x64-3.2.100.zip téléchargé pour plus de facilité. d'utilisation, il est recommandé de mettre Dans le répertoire racine de la lettre de lecteur, tel que : D:Redis-ClusterRedis-x64-3.2.100.
Installez Redis et exécutez 3 instances (le cluster Redis nécessite au moins 3 nœuds, moins de 3 ne peuvent pas être créés
Démarrez 6 instances Redis différentes via les fichiers de configuration, depuis le port par défaut de Redis) ; est 6379, 6380, 6381, 6382, 6383, 6384 et 6385 sont utilisés ici pour exécuter 6 instances Redis.
Remarque :
(1) Afin d'éviter des erreurs inutiles, essayez d'enregistrer le fichier de configuration au format utf8 et n'incluez pas de commentaires
(2) Ce qui suit ; dans le fichier de configuration Il existe deux façons de sauvegarder les journaux (enregistrer dans des fichiers et enregistrer dans le journal système). Veuillez en choisir une en fonction de vos besoins :
loglevel notice #日志的记录级别,notice是适合生产环境的 logfile "D:/Redis-Cluster/Redis-x64-3.2.100/Logs/redis6380_log.txt" #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录 syslog-enabled yes #是否使用系统日志 syslog-ident redis6380 #在系统日志的标识名
La méthode de sauvegarde dans les fichiers est utilisée ici, donc commencez par sauvegarder). dans le répertoire Redis Créez un nouveau dossier Logs sous D:Redis-ClusterRedis-x64-3.2.100.
Dans le répertoire racine de l'installation Redis, créez les fichiers de configuration au format d'encodage utf-8 : redis.6380.conf, redis.6381.conf, redis.6382.conf, redis.6383.conf, redis .6384.conf, redis.6385.conf.
redis.6380.conf,
port 6380 loglevel notice logfile "D:/Redis-Cluster/Redis-x64-3.2.100/Logs/redis6380_log.txt" appendonly yes appendfilename "appendonly.6380.aof" cluster-enabled yes cluster-config-file nodes.6380.conf cluster-node-timeout 15000 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes
redis.6381.conf,
port 6381 loglevel notice logfile "D:/Redis-Cluster/Redis-x64-3.2.100/Logs/redis6381_log.txt" appendonly yes appendfilename "appendonly.6381.aof" cluster-enabled yes cluster-config-file nodes.6381.conf cluster-node-timeout 15000 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes
redis.6382.conf,
port 6382 loglevel notice logfile "D:/Redis-Cluster/Redis-x64-3.2.100/Logs/redis6382_log.txt" appendonly yes appendfilename "appendonly.6382.aof" cluster-enabled yes cluster-config-file nodes.6382.conf cluster-node-timeout 15000 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes
redis.6383.conf,
port 6383 loglevel notice logfile "D:/Redis-Cluster/Redis-x64-3.2.100/Logs/redis6383_log.txt" appendonly yes appendfilename "appendonly.6383.aof" cluster-enabled yes cluster-config-file nodes.6383.conf cluster-node-timeout 15000 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes
redis.6384.conf,
port 6384 loglevel notice logfile "D:/Redis-Cluster/Redis-x64-3.2.100/Logs/redis6384_log.txt" appendonly yes appendfilename "appendonly.6384.aof" cluster-enabled yes cluster-config-file nodes.6384.conf cluster-node-timeout 15000 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes
redis.6385.conf
port 6385 loglevel notice logfile "D:/Redis-Cluster/Redis-x64-3.2.100/Logs/redis6385_log.txt" appendonly yes appendfilename "appendonly.6385.aof" cluster-enabled yes cluster-config-file nodes.6385.conf cluster-node-timeout 15000 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes
(Partage vidéo d'apprentissage : tutoriel vidéo redis)
La configuration est expliquée comme suit :
port 6380 #端口号 loglevel notice #日志的记录级别,notice是适合生产环境的 logfile "Logs/redis6380_log.txt" #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录 syslog-enabled yes #是否使用系统日志 syslog-ident redis6380 #在系统日志的标识名 appendonly yes #数据的保存为aof格式 appendfilename "appendonly.6380.aof" #数据保存文件 cluster-enabled yes #是否开启集群 cluster-config-file nodes.6380.conf cluster-node-timeout 15000 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes
Enregistrez les fichiers de configuration ci-dessus dans le répertoire Redis et utilisez ces fichiers de configuration pour installer 6 Un service redis, la commande est la suivante :
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-install D:/Redis-Cluster/Redis-x64-3.2.100/redis.6380.conf --service-name redis6380 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-install D:/Redis-Cluster/Redis-x64-3.2.100/redis.6381.conf --service-name redis6381 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-install D:/Redis-Cluster/Redis-x64-3.2.100/redis.6382.conf --service-name redis6382 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-install D:/Redis-Cluster/Redis-x64-3.2.100/redis.6383.conf --service-name redis6383 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-install D:/Redis-Cluster/Redis-x64-3.2.100/redis.6384.conf --service-name redis6384 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-install D:/Redis-Cluster/Redis-x64-3.2.100/redis.6385.conf --service-name redis6385
Remarque :
1) Il est préférable d'utiliser le chemin complet des fichiers de configuration tels que redis.6380.conf pour éviter problèmes au redémarrage du cluster Redis
2) La commande de désinstallation est :
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-uninstall D:/Redis-Cluster/Redis-x64-3.2.100/redis.6380.conf --service-name redis6380 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-uninstall D:/Redis-Cluster/Redis-x64-3.2.100/redis.6381.conf --service-name redis6381 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-uninstall D:/Redis-Cluster/Redis-x64-3.2.100/redis.6382.conf --service-name redis6382 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-uninstall D:/Redis-Cluster/Redis-x64-3.2.100/redis.6383.conf --service-name redis6383 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-uninstall D:/Redis-Cluster/Redis-x64-3.2.100/redis.6384.conf --service-name redis6384 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-uninstall D:/Redis-Cluster/Redis-x64-3.2.100/redis.6385.conf --service-name redis6385
Démarrez ces 6 services La commande est la suivante :
D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-start --service-name redis6380 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-start --service-name redis6381 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-start --service-name redis6382 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-start --service-name redis6383 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-start --service-name redis6384 D:/Redis-Cluster/Redis-x64-3.2.100/redis-server.exe --service-start --service-name redis6385
Résultat de l'exécution :
Installer Ruby
(1) Installation de l'environnement Ruby.
Double-cliquez sur le fichier "rubyinstaller-2.2.4-x64.exe" téléchargé pour l'installer. De même, pour faciliter l'utilisation, il est recommandé de l'installer dans le répertoire racine de la lettre de lecteur, par exemple. : C:Ruby22-x64, lors de l'installation Sélectionner les deux dernières options ici,
signifie ajouter Ruby aux variables d'environnement du système, et vous pouvez utiliser les commandes Ruby directement dans la commande cmd
(1) Installez le pilote Redis dans l'environnement Ruby
Copiez le "fichier du pilote Redis dans l'environnement Ruby (redis-3.2.2.gem)" téléchargé dans le répertoire racine d'installation de Ruby (C:Ruby22-x64) vers le bas.
Ensuite, exécutez la commande d'installation comme suit :
gem install --local path_to_gem/filename.gem
Créez un cluster Redis
Mettez le fichier de script Ruby téléchargé redistribué .rb" dans le répertoire racine d'installation de Redis (D:Redis-ClusterRedis-x64-3.2.100).
(1) Utilisez redis-trib.rb pour créer un cluster Redis
Basculez vers le répertoire Redis sous MD (D:Redis-ClusterRedis-x64-3.2.100)
D:/Redis-Cluster/Redis-x64-3.2.100/redis-trib.rb create --replicas 1 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 127.0.0.1:6385
D:\Redis-Cluster\Redis-x64-3.2.100>redis-trib.rb create --replicas 1 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 127.0.0.1:6385 >>> Creating cluster Connecting to node 127.0.0.1:6380: OK Connecting to node 127.0.0.1:6381: OK Connecting to node 127.0.0.1:6382: OK Connecting to node 127.0.0.1:6383: OK Connecting to node 127.0.0.1:6384: OK Connecting to node 127.0.0.1:6385: OK >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 Adding replica 127.0.0.1:6383 to 127.0.0.1:6380 Adding replica 127.0.0.1:6384 to 127.0.0.1:6381 Adding replica 127.0.0.1:6385 to 127.0.0.1:6382 M: bb6ef615bb0ae13275943caec0db9d30b9f35c5e 127.0.0.1:6380 slots:0-5460 (5461 slots) master M: b4d120f2983ad683f7b68992e1ba414722238db7 127.0.0.1:6381 slots:5461-10922 (5462 slots) master M: 837779b3965e2c9d4dd4385750aaaaf9a9039fb0 127.0.0.1:6382 slots:10923-16383 (5461 slots) master S: 5d154137180284d926ef51a91fc75f9438249ef8 127.0.0.1:6383 replicates bb6ef615bb0ae13275943caec0db9d30b9f35c5e S: ad151680a3e36cf2083ef822be0bdb075a7d36de 127.0.0.1:6384 replicates b4d120f2983ad683f7b68992e1ba414722238db7 S: 9a2260a5a6a2add84b622a453a6a7b86a29d180d 127.0.0.1:6385 replicates 837779b3965e2c9d4dd4385750aaaaf9a9039fb0 Can I set the above configuration? (type 'yes' to accept): yes >>> 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:6380)M: bb6ef615bb0ae13275943caec0db9d30b9f35c5e 127.0.0.1:6380 slots:0-5460 (5461 slots) master M: b4d120f2983ad683f7b68992e1ba414722238db7 127.0.0.1:6381 slots:5461-10922 (5462 slots) master M: 837779b3965e2c9d4dd4385750aaaaf9a9039fb0 127.0.0.1:6382 slots:10923-16383 (5461 slots) master M: 5d154137180284d926ef51a91fc75f9438249ef8 127.0.0.1:6383 slots: (0 slots) master replicates bb6ef615bb0ae13275943caec0db9d30b9f35c5e M: ad151680a3e36cf2083ef822be0bdb075a7d36de 127.0.0.1:6384 slots: (0 slots) master replicates b4d120f2983ad683f7b68992e1ba414722238db7 M: 9a2260a5a6a2add84b622a453a6a7b86a29d180d 127.0.0.1:6385 slots: (0 slots) master replicates 837779b3965e2c9d4dd4385750aaaaf9a9039fb0 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
Remarques :
(1)--replicas #指定集群中每个主节点配备几个从节点,这里设置为1。
(2)redis-trib.rb工具的使用
、create:创建集群 、check:检查集群 、info:查看集群信息 、fix:修复集群 、reshard:在线迁移slot 、rebalance:平衡集群节点slot数量 、add-node:将新节点加入集群 、del-node:从集群中删除节点 、set-timeout:设置集群节点间心跳连接的超时时间 、call:在集群全部节点上执行命令 、import:将外部redis数据导入集群
(2)检验是否真的创建成功
输入以下命令:
redis-trib.rb check 127.0.0.1:6380
如果现实信息如下,则说明创建的Redis集群是没问题。
D:\Redis-Cluster\Redis-x64-3.2.100>redis-trib.rb check 127.0.0.1:6380 Connecting to node 127.0.0.1:6380: OK Connecting to node 127.0.0.1:6383: OK Connecting to node 127.0.0.1:6382: OK Connecting to node 127.0.0.1:6384: OK Connecting to node 127.0.0.1:6385: OK Connecting to node 127.0.0.1:6381: OK >>> Performing Cluster Check (using node 127.0.0.1:6380) M: bb6ef615bb0ae13275943caec0db9d30b9f35c5e 127.0.0.1:6380 slots:0-5460 (5461 slots) master 1 additional replica(s) S: 5d154137180284d926ef51a91fc75f9438249ef8 127.0.0.1:6383 slots: (0 slots) slave replicates bb6ef615bb0ae13275943caec0db9d30b9f35c5e M: 837779b3965e2c9d4dd4385750aaaaf9a9039fb0 127.0.0.1:6382 slots:10923-16383 (5461 slots) master 1 additional replica(s) S: ad151680a3e36cf2083ef822be0bdb075a7d36de 127.0.0.1:6384 slots: (0 slots) slave replicates b4d120f2983ad683f7b68992e1ba414722238db7 S: 9a2260a5a6a2add84b622a453a6a7b86a29d180d 127.0.0.1:6385 slots: (0 slots) slave replicates 837779b3965e2c9d4dd4385750aaaaf9a9039fb0 M: b4d120f2983ad683f7b68992e1ba414722238db7 127.0.0.1:6381 slots:5461-10922 (5462 slots) master 1 additional replica(s) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. D:\Redis-Cluster\Redis-x64-3.2.100>
(3)信息查询
使用Redis客户端Redis-cli.exe来查看数据记录数,以及集群相关信息
原文作者:cctext
原文链接:https://www.cnblogs.com/yy3b2007com/p/11033009.html
相关推荐:redis数据库教程
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!