Créez d'abord le dossier redis-cluster:
Parce que Redis nécessite au moins 6 nœuds (trois maîtres et trois esclaves), pour une meilleure compréhension, j'ai créé deux machines virtuelles ici (192.168.0.109 192.168.0.110), et créé trois dossiers de nœuds sous /opt/redis-4.0.1/redis-cluster des deux machines virtuelles respectivement.
192.168.0.109:
192.168.0.110:
Tous les 6 nœuds ci-dessus sont créés, puis le fichier de configuration redis.conf est créé dans ces six dossiers, et la configuration est comme indiqué sur la figure:
port 7000bind 192.168.0.109daemonize yespidfile /var/run/redis_7000.pidcluster-enabled yescluster-config-file nœuds
Parmi eux, vous devez modifier le port Port PidFile Cluster-Config-File au numéro de port de nœud cohérent et se lier à l'IP pour l'accès à distance. Une fois toutes les modifications terminées, vous pouvez démarrer le service Redis:
Démarrez la commande:
Commande en 192.168.0.109: "pour ((i = 0; i <= 2; i ++)); do /opt/redis-4.0.1/src/redis-server /opt/redis-4.0.1/redis-cluster/700$i/redis.conf; Done"
Commande en 192.168.0.110: "pour ((i = 3; i <= 5; i ++)); do /opt/redis-4.0.1/src/redis-server /opt/redis-4.0.1/redis-cluster/700$i/redis.conf; Done"
Vous pouvez voir que l'impression du journal est démarrée avec succès sur le mode d'arrière-plan et que la machine doit démarrer tous les nœuds à son tour pendant deux jours. Après le démarrage du nœud, vous pouvez créer un service de cluster:
Exécutez la commande suivante sur l'une des machines virtuelles "/opt/redis-4.0.1/src/redis-trib.rb Create --replicas 1 192.168.0.109:7000 192.168.0.109:7001 192.168.0.109:7002 192.168.0.110:7003 192.168.0.1110:168.0.110:7003 192.168.0.1110:7004004.110:7003 192.168. 192.168.0.110:7005 "
N'oubliez pas d'exécuter uniquement sur une seule machine. S'il est coincé à la jointure et ne peut pas être exécuté vers le bas, il est généralement dû au port de pare-feu. Il y a deux façons de le résoudre:
1. Non seulement vous devez ouvrir le port externe 7000, mais vous devez également ouvrir 17000 (car le port de bus Redis doit être ajouté 1000).
2. Éteignez directement tous les pare-feu (parce que je suis mon propre environnement ici, j'ai éteint le service de pare-feu directement).
Le journal d'image ci-dessus apparaît et le service de cluster est essentiellement construit avec succès, et vous pouvez clairement voir la relation maître-esclave de chaque nœud. Une fois l'environnement construit, nous l'utiliserons conjointement avec l'architecture SSM que j'ai parlé dans l'article précédent.
Le cache Mybaits Level 2 qui a été intégré la dernière fois est une version autonome. Étant donné que cette méthode ne prend pas en charge les clusters, nous utiliserons Jedis-Cluster pour intégrer les clusters Redis et Java.
Tout d'abord, ajoutez la configuration de la machine de cluster dans le fichier redis.properties et ajoutez les 6 nœuds à la configuration à tour de rôle:
#grappe cluster1.host.port = 192.168.0.109: 7000cluster2.host.port = 192.168.0.109: 7001cluster3.host.port = 192.168.0.109: 7002 cluster4.host.port = 192.168.0.110: 7003cluster5.host.port = 192.168.0.110: 7004cluster6.host.port = 192.168.0.110: 7005
Le fichier de configuration Redis a également beaucoup changé par rapport à la précédente. Je l'ai répertorié directement et je peux être copié et utilisé directement.
printemps-redis.xml
<Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: p = "http://www.springfrrame xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: util = "http://www.springframework.org/schema/util" xmlns: aop = "http:" xmlns: context = "http://www.springframework.org/schema/context" xmlns: task = "http://www.springframework.org/schema/task" xsi: schemalocation = "http://www.springfrramework.org/schema/Beans http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd "> <! - Configuration de paramètre de base de la connexion Pool, similaire à Database Pool -> <Contexte: <pare-location d'emplacement de l'emplacement =" ClassPath *: Redis.propers " name = "genericObjectPoolConfig"> <propriété name = "maxwaitmillis" value = "- 1" /> <propriété name = "maxtotal" value = "1000" /> <propriété name = "minidle" value = "8" /> <propriété name = "maxidle" value = "100" /> </ bean> <! - Configuration de pool de connexion, similaire à dataBase Pool id = "JedisconnectionFactory"> <propriété name = "hostname" value = "$ {redis.host}"> </ propriété> <propriété name = "port" value = "$ {redis.port}"> </ propriété> propriété = propriété = "PoolConfig" Ref = "PoolCon"> </ / propriété> </ Property Name = "PoolConfig" </EAN> -> <! - Connex Connexion Configuration d'usine de pool -> <! - <bean id = "redesttemplate"> <propriété name = "JedisconnectionFactory" ref = "JedisconnectionFactory"> </ propriété> Si le sérialiseur n'est pas configuré, utilisez la chaîne intelligemment lors du stockage. Si vous utilisez le type d'utilisateur pour stocker, il invitera une erreur que l'utilisateur ne peut pas lancer en chaîne! ! ! <propriété name = "KeySerializer"> <anan /> </ propriété> <propriété name = "ValueRerializer"> <Ean /> </ propriété> </ank> -> <bean id = "Jediscluster"> <propriété name = "AddressConfig"> <value> ClassPath: redis.properties </value> </ / propriété Name = "AddressKeyPreFix" Value = "300000" /> <propriété name = "MaxRedirections" value = "6" /> <propriété name = "genericObjectPoolConfig" ref = "genericObjectPoolConfig" /> </ bean> </bans>Désactivez toutes les configurations de cache de MyBatis dans l'intégration SSM + Redis précédente pour démarrer le test de service
Tout d'abord, injectez directement Jediscluster pour obtenir un objet de cluster.
Pour plus de commodité, j'ai écrit une idée simple en Java pour synchroniser les données, et d'autres méthodes peuvent également être implémentées, telles que la mise en œuvre de Spring AOP, en utilisant des plug-ins tiers ou une implémentation au niveau de la base de données.
Après une startup réussie, la méthode est appelée à plusieurs reprises. Vous pouvez voir que la console n'imprime pas l'instruction SQL, mais obtient directement les données dans le cluster redis. L'instance de cluster redis simple ci-dessus est terminée. En raison des contraintes de temps, je n'ai pas écrit quelques pièges en détail en détail.
Résumer
Ce qui précède est la méthode d'utilisation intégrée du cluster Redis et SSM qui vous a été présentée. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!