Comment utiliser Memcached pour la mise en cache des données dans Workerman
Memcached est un système de mise en cache de mémoire distribuée open source qui est souvent utilisé pour améliorer les performances et l'évolutivité des applications Web. Workerman est un framework PHP Socket hautes performances qui peut être utilisé pour créer des applications de communication en temps réel. Cet article explique comment utiliser Memcached pour la mise en cache des données dans Workerman et fournit des exemples de code spécifiques.
1. Installer et configurer Memcached
Avant de commencer, vous devez installer et configurer Memcached. Memcached peut être installé sur un système Linux via la commande suivante :
sudo apt-get install memcached
Une fois l'installation terminée, vous devez modifier le fichier de configuration /etc/memcached.conf, définir l'IP d'écoute et le numéro de port, et spécifier la taille de la mémoire.
-d -p 11211 -l 127.0.0.1 -m 128
Enregistrez le fichier de configuration et redémarrez le service Memcached.
2. Installez Workerman
Ensuite, vous devez installer le framework Workerman. Vous pouvez l'installer en utilisant Composer avec la commande suivante :
composer require workerman/workerman
3. Écrivez le code pour utiliser Memcached
<?php require_once __DIR__.'/vendor/autoload.php'; use WorkermanWorker; use WorkermanProtocolsHttp; $worker = new Worker('http://0.0.0.0:8000'); $worker->onMessage = function ($connection, $request) { // 先尝试从缓存中获取数据 $cache = new Memcached(); $cache->addServer('127.0.0.1', 11211); $data = $cache->get($request->path()); if ($data === false) { // 缓存中不存在数据,则从数据库中获取数据 $data = get_data_from_database($request->path()); // 将数据存入缓存 $cache->set($request->path(), $data, 86400); // 缓存有效期为24小时 } // 返回数据给客户端 Http::header('Content-Type: application/json'); Http::header('Cache-Control: max-age=86400'); // 设置浏览器缓存时间为24小时 $connection->send(json_encode($data)); }; function get_data_from_database($path) { // 从数据库中获取数据的逻辑,此处省略 return [ 'path' => $path, 'data' => 'some data' ]; } Worker::runAll();
php cache.php start
4. Code de test
Vous pouvez utiliser un navigateur ou d'autres outils pour envoyer des requêtes HTTP afin de tester la fonction de mise en cache des données de Memcached. Par exemple, si vous accédez à http://localhost:8000/foo, les données seront extraites de la base de données et stockées dans le cache. Accédez à nouveau à http://localhost:8000/foo et les données seront obtenues directement à partir du cache.
Grâce aux étapes ci-dessus, nous avons utilisé avec succès Memcached pour la mise en cache des données dans Workerman. Les exemples contenus dans le code sont uniquement à titre de référence et doivent être ajustés en fonction de la logique métier spécifique lorsqu'ils sont utilisés dans la pratique. Dans le même temps, vous devez veiller à protéger la sécurité du service Memcached afin d'éviter les opérations malveillantes de la part de visiteurs non autorisés.
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!