Maison développement back-end tutoriel php Le projet Laravel utilise twemproxy pour déployer les étapes complètes de l'instance PHP du cluster Redis

Le projet Laravel utilise twemproxy pour déployer les étapes complètes de l'instance PHP du cluster Redis

Jun 25, 2018 pm 05:05 PM
laravel redis 集群

Twemproxy est un serveur proxy permettant de réduire le nombre de connexions ouvertes par le serveur Memcached ou Redis. L'article suivant vous présente principalement les informations pertinentes sur le projet laravel utilisant twemproxy pour déployer le cluster redis. L'article le présente en détail à travers l'exemple de code. Les amis dans le besoin peuvent s'y référer

<.>Avant-propos

twemproxy est un proxy Redis développé par Twitter. Twemproxy peut utiliser plusieurs serveurs Redis comme un seul. Lorsque les développeurs accèdent à ces serveurs Redis via twemproxy, ils n'ont pas à s'inquiéter. vers lequel aller. Un serveur Redis lit les données k-v ou met à jour les données k-v dans l'ensemble de données, ce qui résout également le problème du partage Redis entre plusieurs serveurs. Avec l'aide de la réplication maître-esclave de Redis, il peut être garanti que même si un Redis ne fonctionne pas, l'existence d'un ensemble de données complet peut toujours être garantie.

À quoi sert Twemproxy ? Il peut :

  • Réduire le nombre de connexions au serveur de cache via proxy

  • Partager automatiquement des données entre plusieurs serveurs de cache

  • Prise en charge d'un hachage cohérent grâce à différentes stratégies et fonctions de hachage

  • Désactiver les nœuds défaillants via la configuration

  • Exécuter sur plusieurs instances, le client peut se connecter au premier serveur proxy disponible

  • Prend en charge le streaming et le traitement par lots des requêtes, réduisant ainsi la consommation aller-retour

Ce qui suit présente l'installation et la configuration de twemproxy :

1 Vous devez installer m4 avant d'installer twemproxy , autoconf, automake, libtool, gcc, sinon diverses erreurs se produiront. être signalé

Installer m4

wget http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz
&amp;&amp; tar -xzvf m4-1.4.13.tar.gz
&amp;&amp; cd m4-1.4.13
&amp;&amp; ./configure –prefix=/usr/local 
make &amp;&amp; make install
Copier après la connexion

Installer autoconf, automake, libtool, gcc

yum -y install autoconf automake libtool gcc
Copier après la connexion

2. Installer twemproxy

git clone https://github.com/twitter/twemproxy.git
autoreconf -fvi #生成configure文件
.configure
make &amp;&amp; make install
Copier après la connexion

3. Modifiez le fichier de configuration

vim conf/nutcracker.yml

alpha:
 listen: 127.0.0.1:22121 #监听端口
 hash: fnv1a_64  #key值hash算法,默认fnv1a_64
 distribution: ketama  #分布算法 
#ketama一致性hash算法;modula非常简单,就是根据key值的hash值取模;random随机分布
 auto_eject_hosts: true  #摘除后端故障节点 
 redis: true   #是否是redis缓存,默认是false
 timeout: 400   #代理与后端超时时间,毫秒
 server_retry_timeout: 200000 #摘除故障节点后重新连接的时间,毫秒
 server_failure_limit: 1  #故障多少次摘除
 servers:
 - 172.16.175.145:6379:1 
 - 172.16.175.122:6379:1
Copier après la connexion

4. Changer le fichier de configuration redis

L'IP et le port surveillé par redis doivent correspondre à twemproxy (car je n'ai installé twemproxy que sur une des machines. Si si les deux serveurs sont installés, il n'y a pas besoin de changer )

Modifiez l'option de liaison dans redis.conf des deux serveurs respectivement et remplacez 127.0.0.1 par 172.16.175.145 et 172.16.175.122 dans cet exemple

5. twemproxy

nutcracker -t -c /twemproxy/conf/nutcracker.yml 
#测试配置文件 如果不加-c 默认是检测conf/nutcracker.yml
Copier après la connexion

nutcracker -d -c /twemproxy/conf/nutcracker.yml -p -o /data/logs/twemproxy/redisproxy.log 
#启动并将日志记录到/data/logs/twemproxy/redisproxy.log
Copier après la connexion

6. Modifiez la connexion Redis dans le projet sur l'adresse IP et le port de twemproxy

Mon projet utilise Laravel, définissez simplement REDIS_HOST et REDIS_PORT dans le .env sur 127.0.0.1 et 22121

Notez que vous avez également besoin pour commenter 'database' => 0 dans la configuration redis dans database.php sous le dossier config, Predis effectue une opération de sélection sur cette configuration par défaut, ce qui provoquera des erreurs de connexion.

Faites un test de lecture et d'écriture Redis Si rien d'inattendu ne se produit, twemproxy peut être utilisé normalement !

Résumé

Articles qui pourraient vous intéresser :

Comment ouvrir PHP7 Opcode crée des performances puissantes avec une explication détaillée des compétences PHP

PHP résout le problème des lapins donnant naissance à des lapins basés sur des compétences PHP d'algorithme récursif

À propos de ThinkPHP Explication détaillée de la gestion des exceptions dans l'exemple_php

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution à l'erreur 0x80242008 lors de l'installation de Windows 11 10.0.22000.100 Solution à l'erreur 0x80242008 lors de l'installation de Windows 11 10.0.22000.100 May 08, 2024 pm 03:50 PM

Solution à l'erreur 0x80242008 lors de l'installation de Windows 11 10.0.22000.100

Laravel - Commandes artisanales Laravel - Commandes artisanales Aug 27, 2024 am 10:51 AM

Laravel - Commandes artisanales

Comment utiliser le mappage objet-relationnel (ORM) en PHP pour simplifier les opérations de base de données ? Comment utiliser le mappage objet-relationnel (ORM) en PHP pour simplifier les opérations de base de données ? May 07, 2024 am 08:39 AM

Comment utiliser le mappage objet-relationnel (ORM) en PHP pour simplifier les opérations de base de données ?

Stratégie de mise en cache et optimisation de l'API Golang Stratégie de mise en cache et optimisation de l'API Golang May 07, 2024 pm 02:12 PM

Stratégie de mise en cache et optimisation de l'API Golang

Comparaison des dernières versions de Laravel et CodeIgniter Comparaison des dernières versions de Laravel et CodeIgniter Jun 05, 2024 pm 05:29 PM

Comparaison des dernières versions de Laravel et CodeIgniter

Mécanisme de mise en cache et pratique d'application dans le développement PHP Mécanisme de mise en cache et pratique d'application dans le développement PHP May 09, 2024 pm 01:30 PM

Mécanisme de mise en cache et pratique d'application dans le développement PHP

Comment les capacités de traitement des données de Laravel et de CodeIgniter se comparent-elles ? Comment les capacités de traitement des données de Laravel et de CodeIgniter se comparent-elles ? Jun 01, 2024 pm 01:34 PM

Comment les capacités de traitement des données de Laravel et de CodeIgniter se comparent-elles ?

Comment mettre à niveau Win11 anglais 21996 vers le chinois simplifié 22000_Comment mettre à niveau Win11 anglais 21996 vers le chinois simplifié 22000 Comment mettre à niveau Win11 anglais 21996 vers le chinois simplifié 22000_Comment mettre à niveau Win11 anglais 21996 vers le chinois simplifié 22000 May 08, 2024 pm 05:10 PM

Comment mettre à niveau Win11 anglais 21996 vers le chinois simplifié 22000_Comment mettre à niveau Win11 anglais 21996 vers le chinois simplifié 22000

See all articles