Memcaché est utilisé pour accélérer les sites Web dynamiques basés sur une base de données en mettant en cache des données et des objets dans la RAM. Cela réduit le nombre de fois qu'une source de données externe doit être lue, ce qui réduit les frais généraux et accélère les temps de réponse. Le logiciel de mise en cache de la mémoire est un projet open source gratuit que tout le monde peut utiliser.
À la fin du didacticiel, vous saurez comment installer et configurer Memcached sur votre système d'exploitation openSUSE Leap 15.
Prérequis
- OS recommandé : openSUSE Leap – 15.x
- Compte utilisateur : Un compte utilisateur avec un accès sudo ou root.
Mettre à jour le système d'exploitation
Mettez à jour votre openSUSE système d'exploitation pour s'assurer que tous les packages existants sont à jour :
sudo zypper refresh
Le tutoriel utilisera la commande sudo et en supposant que vous avez le statut sudo .
Pour vérifier le statut sudo sur votre compte :
sudo whoami
Exemple de sortie montrant l'état de sudo :
[joshua@opensuse ~]$ sudo whoami
root
Pour configurer un compte sudo existant ou nouveau, consultez notre didacticiel sur l'ajout d'un utilisateur à Sudoers sur openSUSE .
Pour utiliser le compte racine , utilisez la commande suivante avec le mot de passe root pour vous connecter.
su
Installer Memcached
Par défaut, openSUSE a Memcached dans ses référentiels. Pour installer Memcached, saisissez la commande suivante :
sudo zypper install memcached libmemcached
Exemple de résultat :
Tapez O, puis appuyez sur ENTER KEY pour poursuivre l'installation.
Notez que la deuxième option d'installation, le "libmemcached ", fournit des commandes supplémentaires pour apporter une interaction supplémentaire et des capacités d'exécution à Memcached.
Ensuite, vérifiez que Memcached a été installé correctement en vérifiant sa version et sa construction
sudo memcached --version
Exemple de résultat :
memcached 1.5.6
Le service, par défaut, ne sera pas actif. Pour démarrer Memcached à l'aide de la commande suivante :
sudo systemctl enable memcached --now
Memcached devrait être activé par défaut. Pour vérifier cela, utilisez la commande systemctl status comme suit :
systemctl status memcached
Exemple de résultat :
D'autres commandes utiles pour gérer le service Memcached sont les suivantes :
Pour activer le service Memcached au démarrage du système :
sudo systemctl enable memcached
Pour arrêter le service Memcached :
sudo systemctl stop memcached
Pour désactiver le service Memcached au démarrage du système :
sudo systemctl disable memcached
Pour redémarrer le service Memcached :
sudo systemctl restart memcached
Configurer Memcached
Memcached doit écouter 127.0.0.1 . Ouvrez le paramètre par défaut dans le fichier de configuration situé dans "/etc/sysconfig/memcached ".
sudo nano /etc/sysconfig/memcached
La première option consiste à modifier le numéro de port traditionnel pour Memcached.
Tout d'abord, faites défiler le MEMCACHED_PARAM Ligne S :
MEMCACHED_PARAMS=" -l 127.0.0.1"
Actuellement, Memcached est configuré pour écouter localhost, et vous pouvez définir une adresse IP interne ou externe si nécessaire en modifiant 127.0.0.1.
Exemple :
MEMCACHED_PARAMS=" -l 192.51.5.231"
Ensuite, dans la même ligne, vous pouvez ajouter des drapeaux supplémentaires pour modifier les paramètres. L'un des paramètres les plus populaires à modifier est la taille par défaut de 64 Mo à quelque chose de plus important si vous avez un serveur puissant.
Exemple de modification de la RAM de 64 Mo à 2 Go :
MEMCACHED_PARAMS=" -l 192.51.5.231 m - 2000"
Une autre option populaire consiste à désactiver UDP s'il n'est pas nécessaire.
Pour ce faire, utilisez ce qui suit :
MEMCACHED_PARAMS=" -l 192.51.5.231 m - 2000 - U 0"
Un aperçu du didacticiel sur ce à quoi votre configuration pourrait ressembler une fois terminée.
Exemple uniquement :
Enregistrez maintenant le fichier CTRL+O et appuyez sur "Y", puis CTRL+X pour quitter et redémarrer votre instance Memcached.
sudo systemctl restart memcached
Configurer Firewalld pour Memcached
Par défaut, aucune règle n'est configurée pour Memcached. Cela signifie que vous devrez créer des règles d'autorisation qui sont essentielles pour arrêter les attaques. Le fait de ne pas sécuriser Memcached entraînera des problèmes plus tard, alors ne sautez pas cela à moins que vous n'ayez d'autres moyens de protéger votre installation.
Tout d'abord, ajoutez une nouvelle zone dédiée pour la stratégie de pare-feu Memcached :
sudo firewall-cmd --permanent --new-zone=memcached
Ensuite, spécifiez les adresses IP autorisées qui sont autorisées à accéder au Memcached.
sudo firewall-cmd --permanent --zone=memcached --add-source=1.2.3.4
Remplacer 1.2.3.4 par l'IP adresse qui sera ajoutée à la liste d'autorisation.
Une fois que vous avez fini d'ajouter les adresses IP, ouvrez le port du Memcached.
Par défaut, il s'agit du port TCP 11211 .
sudo firewall-cmd --permanent --zone=memcached --add-port=11211/tcp
Notez que vous pouvez modifier le port par défaut dans votre fichier de configuration si vous remplacez la règle d'ouverture du port de pare-feu ci-dessus par la nouvelle valeur.
Après avoir exécuté ces commandes, rechargez le pare-feu pour mettre en œuvre les nouvelles règles :
sudo firewall-cmd --reload
Exemple de résultat en cas de succès :
success
Installer les bibliothèques PHP Memcached
Memcached est livré avec diverses extensions pour les langages de programmation, mais il est principalement utilisé pour PHP. Cependant, openSUSE a besoin de quelques référentiels supplémentaires installés pour extraire ces packages car ils ne figurent pas sur le référentiel par défaut.
Serveur d'importation:php:extensions pour openSUSE Leap 15.3 :
sudo zypper addrepo https://download.opensuse.org/repositories/server:php:extensions/openSUSE_Leap_15.3/server:php:extensions.repo
Serveur d'importation:php:extensions pour openSUSE Leap 15. 2 :
sudo zypper addrepo https://download.opensuse.org/repositories/server:php:extensions/openSUSE_Leap_15.2/server:php:extensions.repo
Une fois terminé, actualisez le référentiel.
sudo zypper refresh
Ensuite, installez le support PHP Memcached à l'aide de la commande suivante.
Exemple PHP 7.4 :
sudo zypper install php7-memcached php7-memcached
Exemple PHP 8.0 :
sudo zypper install php8-memcached php8-memcached
Exemple de sortie (PHP 8) :
Tapez O, puis appuyez sur ENTER KEY pour poursuivre l'installation.
De plus, pour la prise en charge de Memcached avec Python, vous pouvez installer les packages suivants à l'aide de la bibliothèque PIP.
pip3 install pymemcache --user
pip3 install python-memcached --user
Accéder à Memcached depuis la ligne de commande
Les statistiques Memcached peuvent être recueillies par de nombreux logiciels supplémentaires et interfaces Web avec lesquels il fonctionne. Cependant, une meilleure façon de vérifier est d'interagir avec Memcached directement en utilisant la ligne de commande.
Tout d'abord, TELNET à votre service :
telnet localhost 11211
Exemple de résultat :
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Notez que si Telnet n'est pas installé, exécutez la commande suivante pour l'installer.
sudo zypper install telnet
TELNET ne devrait jamais être autorisé à communiquer avec un réseau public et restreint dans les environnements de réseau privé.
Ensuite, vous pouvez obtenir un aperçu de votre service Memcached en utilisant la commande suivante :
stats
Exemple de résultat :
STAT pid 5934
STAT uptime 1275
STAT time 1631930242
STAT version 1.6.9
STAT libevent 2.1.12-stable
STAT pointer_size 64
STAT rusage_user 0.113635
STAT rusage_system 0.000000
STAT max_connections 1024
STAT curr_connections 1
STAT total_connections 2
STAT rejected_connections 0
STAT connection_structures 2
STAT response_obj_oom 0
STAT response_obj_count 1
STAT response_obj_bytes 16384
STAT read_buf_count 2
STAT read_buf_bytes 32768
STAT read_buf_bytes_free 0
STAT read_buf_oom 0
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT cmd_meta 0
STAT get_hits 0
STAT get_misses 0
STAT get_expired 0
STAT get_flushed 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 7
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT slab_reassign_rescues 0
STAT slab_reassign_chunk_rescues 0
STAT slab_reassign_evictions_nomem 0
STAT slab_reassign_inline_reclaim 0
STAT slab_reassign_busy_items 0
STAT slab_reassign_busy_deletes 0
STAT slab_reassign_running 0
STAT slabs_moved 0
STAT lru_crawler_running 0
STAT lru_crawler_starts 6
STAT lru_maintainer_juggles 1325
STAT malloc_fails 0
STAT log_worker_dropped 0
STAT log_worker_written 0
STAT log_watcher_skipped 0
STAT log_watcher_sent 0
STAT unexpected_napi_ids 0
STAT round_robin_fallback 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT slab_global_page_pool 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evicted_active 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 0
STAT moves_to_cold 0
STAT moves_to_warm 0
STAT moves_within_lru 0
STAT direct_reclaims 0
STAT lru_bumps_dropped 0
END
Comme ci-dessus, cela montre certaines choses cruciales que vous voudrez peut-être voir, telles que la disponibilité, le nombre d'éléments dans le cache et le nombre de connexions client à l'instance
Vous pouvez affiner la recherche en examinant les différentes dalles (partitions) de mémoire Memcached pour obtenir des résultats.
Exemples ci-dessous :
Listez les dalles de l'instance connectée :
stats slabs
Liste des dalles qui comprend le nombre d'éléments stockés dans chaque dalle :
stats items
Ensuite, vous pouvez accéder aux données et les supprimer à l'aide de la commande cachedump pour lister les clés.
Tout d'abord, exécutez la commande cachedump :
stats cachedump [slab ID] [number of items, 0 for all items]
Exemple en action :
stats cachedump 1 0
Exemple de résultat :
ITEM testkey [9 b; 1296857316 s]
END
Comme ci-dessus, SLAB 1 a un élément avec la clé "testkey". Pour obtenir la valeur réelle, vous pouvez utiliser la "get key" commande comme suit :
get testkey
Exemple de résultat :
VALUE testkey 0 9
test data
END
Enfin, pour supprimer un élément mis en cache, dans ce cas, la "testkey" utilisez la commande suivante :
delete testkey
Exemple de résultat :
DELETED
Comment supprimer (désinstaller) Memcached
Pour supprimer Memcached, utilisez la commande suivante dans votre terminal.
sudo zypper remove memcached libmemcached
Cela supprimera immédiatement Memcached de votre système.