Maison > Article > développement back-end > Comment utiliser Memcache pour la mise en cache distribuée dans le développement PHP ?
À mesure que les applications Web deviennent de plus en plus complexes, les performances sont devenues un enjeu critique. Dans de nombreuses applications, les requêtes de base de données constituent l’une des opérations les plus chronophages. Afin d'éviter de lire fréquemment les données de la base de données, vous pouvez utiliser un système de mise en cache pour stocker les données fréquemment lues en mémoire pour un accès rapide. Dans le développement PHP, l'utilisation de Memcached pour la mise en cache distribuée est une pratique extrêmement courante. Dans cet article, nous présenterons comment utiliser Memcached pour la mise en cache distribuée.
Memcached est un système de mise en cache de mémoire distribuée hautes performances qui peut partager les données mises en cache entre plusieurs serveurs. Plus précisément, Memcached est un système de cache clé-valeur qui stocke les données en mémoire. Il permet aux développeurs de mettre en cache tous types de données dans leurs applications, y compris les pages HTML, les résultats de requêtes de bases de données et même des applications Web complètes.
Avant d'utiliser Memcached, nous devons d'abord l'installer. Sur les systèmes Linux, vous pouvez l'installer avec la commande suivante :
sudo apt-get install memcached sudo apt-get install php-memcached
Une fois l'installation terminée, vous devez démarrer le service Memcached, qui peut être démarré avec la commande suivante :
sudo service memcached start
Ensuite, nous devons configurer le Memcached module d'extension en PHP. Sur les systèmes Ubuntu, il peut être configuré en éditant le fichier suivant :
sudo vi /etc/php/7.0/mods-available/memcached.ini
Ajoutez le contenu suivant dans le fichier :
extension=memcached.so
Enregistrez et fermez le fichier et redémarrez le serveur Apache :
sudo service apache2 restart
Vous avez maintenant installé et configuré avec succès Memcached .
Ensuite, nous montrerons comment utiliser Memcached pour la mise en cache distribuée. Tout d'abord, nous devons créer une instance Memcached, vous pouvez utiliser le code suivant :
$mc = new Memcached(); $mc->addServer("127.0.0.1", 11211); // 添加一个Memcached服务器
Dans le code ci-dessus, nous avons créé une instance Memcached et ajouté un serveur Memcached. Le premier paramètre de la fonction addServer() est l'adresse IP du serveur Memcached et le deuxième paramètre est le numéro de port (la valeur par défaut est 11211).
Ensuite, examinons un exemple spécifique de mise en cache des résultats de requêtes de base de données dans Memcached. Nous supposons que nous avons défini une fonction fetchUserById() qui accepte un identifiant utilisateur comme paramètre et renvoie les informations de l'utilisateur. Voici le code pour y parvenir :
function fetchUserById($uid) { // 检查缓存中是否存在该用户信息 $mc = new Memcached(); $mc->addServer("127.0.0.1", 11211); $key = "user_".$uid; $data = $mc->get($key); if (!$data) { // 如果缓存中不存在该用户信息,则从数据库中查询 $pdo = new PDO("mysql:host=127.0.0.1;dbname=mydb","root",""); $stmt = $pdo->prepare("SELECT * FROM users WHERE id=:id"); $stmt->bindParam(":id", $uid); $stmt->execute(); $data = $stmt->fetch(PDO::FETCH_ASSOC); // 将查询结果缓存到Memcached中 $mc->set($key, $data, 3600); } return $data; }
Dans le code ci-dessus, nous utilisons l'ID utilisateur comme nom de clé du cache Memcached, et si le nom de clé existe dans le cache, les données mises en cache sont renvoyées directement. Sinon, nous interrogerons les données de la base de données et stockerons les résultats de la requête dans Memcached afin que la requête suivante puisse être lue depuis le cache.
Dans les applications réelles, Memcached a également de nombreuses autres utilisations, telles que la mise en cache des pages, la mise en cache des données de session, etc. L'utilisation de Memcached peut améliorer considérablement la vitesse et les performances des applications Web, mais en même temps, d'autres problèmes doivent être pris en compte, tels que les mises à jour du cache, l'invalidation du cache, la pénétration du cache, etc. Par conséquent, lorsque nous utilisons Memcached pour la mise en cache distribuée, nous devons prendre en compte son processus de mise en œuvre et ses scénarios d'application pour améliorer son efficacité.
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!