Maison cadre php YII Comment utiliser correctement le cache MemCache dans le framework Yii

Comment utiliser correctement le cache MemCache dans le framework Yii

Nov 18, 2020 pm 03:29 PM
memcache yii 框架 缓存

Comment utiliser correctement le cache MemCache dans le framework Yii

Les opérations spécifiques sont les suivantes :

(Tutoriel graphique recommandé : yii)

1. Configurer le serveur memcache. serveur

1. Téléchargez le progiciel memcached. Adresse de téléchargement :

http://pan.baidu.com/s/1boAnghp
Copier après la connexion

Décompressez-le et placez memcached.exe à n'importe quel endroit, par exemple : d:/memcached/ (je l'ai décompressé sur mon ordinateur). wampserver Le répertoire bin est au même niveau que le répertoire php).

2. Utilisez la touche de raccourci Windows+R pour saisir cmd, saisissez le code dans la ligne de commande et passez au répertoire de memcache.exe :

Comment utiliser correctement le cache MemCache dans le framework Yii

3. Entrez le code suivant pour installer memcache.exe : memcached.exe -d install

Comment utiliser correctement le cache MemCache dans le framework Yii

4. Entrez memcached.exe -d start pour démarrer

Comment utiliser correctement le cache MemCache dans le framework Yii

Configuration réussie

//memcache常用的函数:
Memcache::add   //添加一个值,如果已经存在,则返回false
Memcache::addServer  // 添加一个可供使用的服务器地址
Memcache::close   //关闭一个Memcache对象
Memcache::connect  // 创建一个Memcache对象
memcache_debug  // 控制调试功能
Memcache::decrement  // 对保存的某个key中的值进行减法操作
Memcache::delete   //删除一个key值
Memcache::flush  // 清除所有缓存的数据
Memcache::get   //获取一个key值
Memcache::getExtendedStats   //获取进程池中所有进程的运行系统统计
Memcache::getServerStatus// 获取运行服务器的参数
Memcache::getStats   //返回服务器的一些运行统计信息
Memcache::getVersion   //返回运行的Memcache的版本信息
Memcache::increment   //对保存的某个key中的值进行加法操作
Memcache::pconnect  // 创建一个Memcache的持久连接对象
Memcache::replace   //对一个已有的key进行覆写操作
Memcache::set   //添加一个值,如果已经存在,则覆写
Memcache::setCompressThreshold   //对大于某一大小的数据进行压缩
Memcache::setServerParams   //在运行时修改服务器的参数
Copier après la connexion

2. Installez l'extension php_memcache.dll

1. Téléchargez d'abord l'extension php_memcache.dll qui correspond à votre version de php

Adresse :

http://pan.baidu.com/s/1skJnZIl
Copier après la connexion

2. Copiez-la et publiez-la dans votre dossier php/ext

3 Ajoutez le code suivant dans php.ini et importez l'extension :

extension=php_memcache.dll
Copier après la connexion
<. 🎜>3. Dans yii Configuration

1. Si vous utilisez le framework de base : ouvrez config/web.php

Si vous utilisez le framework avancé : ouvrez config/main.php

Ajoutez le code suivant :

&#39;cache&#39; => [
    &#39;class&#39; => &#39;yii\caching\MemCache&#39;,
    &#39;servers&#39; => [
        [
            &#39;host&#39; => &#39;localhost&#39;,
            &#39;port&#39; => 11211,
            &#39;weight&#39; => 100,
        ],
        [
            &#39;host&#39; => &#39;localhost&#39;,
            &#39;port&#39; => 11211,
            &#39;weight&#39; => 50,
        ],
    ],
],
Copier après la connexion

Vous pouvez désormais utiliser le code suivant dans la méthode d'action de votre contrôleur :

//缓存MemCache
 
$key=&#39;key&#39;;
$value=&#39;this is the value&#39;;
<pre name="code" class="php">Yii::$app->cache->set($key,$value);
echo "lixian";
echo Yii::$app->cache->get($key);
exit();
Copier après la connexion
Copier après la connexion
Copier après la connexion

Mais lorsque vous utilisez le délai d'expiration :

Yii::$app->cache->set($key,$value,6);//过期时间为6s
echo "lixian";
echo Yii::$app->cache->get($key);
exit();
Copier après la connexion
Il ne peut pas être généré. Il s'agit d'un bug dans le framework lui-même. La solution est la suivante :

Configurez les paramètres correspondants selon le document avant d'utiliser memcache dans yii2. memcache (non-memcache) Yii::$app->cache->set('key','value'); Lorsque cette phrase ne fixe pas la durée de validité en secondes, la valeur de la clé dans le cache peut être obtenue normalement, mais cela signifie que la clé n'expirera pas.

Lorsque l'heure de validité est réglée, Yii::$app->cache->set('key','value',60); Par exemple, au bout de 60 secondes, il apparaîtra que la valeur correspondant à la clé ne peut pas être obtenue. Après des recherches en ligne et sur les forums, je n'ai pas trouvé de solution. De nombreux PHPers ont rencontré des problèmes similaires. Je suis donc allé jeter un œil au code sous-jacent. La classe memcache référencée est la yiicachingMemCache fournie avec Yii2. Yii::$app->cache->set('clé','valeur') Ce code appellera automatiquement la méthode setValue sous la classe memcache pour définir le cache, le problème peut donc survenir ici.

Après avoir testé plus tard, j'ai trouvé la dernière phrase de cette méthode return $this->useMemcached ? $this->_cache->set($key, $value, $expire) : $this->_cache->set($key, $value, 0, $expire ) problème, change ce code en return $this->useMemcached ? $this->_cache->set($key, $value, $expire) : $this->_cache->set($key, $value, 0, $duration ) Ensuite, j'ai testé à nouveau et j'ai constaté que le problème avait été résolu.

La raison est qu'il est appelé lorsque Memcache est utilisé dans ce code retour $this->_cache->set($key, $value, 0, $expire) , équivalent à $mem = new Memcache();$mem->set($key,$value,0,$expire); Le point le plus critique ici est : l'heure à définir par memcache signifie le nombre de secondes de l'heure effective, et l'heure à définir par memcached signifie la seconde à laquelle elle expirera (équivalent à time()+$duration), le problème est donc trouvé. Ensuite, le problème a été résolu en changeant le deuxième $expire dans le code d'origine en $duration.

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

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

Outils chauds

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)

Comment évaluer la rentabilité du support commercial des frameworks Java Comment évaluer la rentabilité du support commercial des frameworks Java Jun 05, 2024 pm 05:25 PM

L'évaluation du rapport coût/performance du support commercial pour un framework Java implique les étapes suivantes : Déterminer le niveau d'assurance requis et les garanties de l'accord de niveau de service (SLA). L’expérience et l’expertise de l’équipe d’appui à la recherche. Envisagez des services supplémentaires tels que les mises à niveau, le dépannage et l'optimisation des performances. Évaluez les coûts de support commercial par rapport à l’atténuation des risques et à une efficacité accrue.

Comment les options légères des frameworks PHP affectent-elles les performances des applications ? Comment les options légères des frameworks PHP affectent-elles les performances des applications ? Jun 06, 2024 am 10:53 AM

Le framework PHP léger améliore les performances des applications grâce à une petite taille et une faible consommation de ressources. Ses fonctionnalités incluent : une petite taille, un démarrage rapide, une faible utilisation de la mémoire, une vitesse de réponse et un débit améliorés et une consommation de ressources réduite. Cas pratique : SlimFramework crée une API REST, seulement 500 Ko, une réactivité élevée et un débit élevé.

Bonnes pratiques en matière de documentation du framework Golang Bonnes pratiques en matière de documentation du framework Golang Jun 04, 2024 pm 05:00 PM

La rédaction d'une documentation claire et complète est cruciale pour le framework Golang. Les meilleures pratiques incluent le respect d'un style de documentation établi, tel que le Go Coding Style Guide de Google. Utilisez une structure organisationnelle claire, comprenant des titres, des sous-titres et des listes, et fournissez la navigation. Fournit des informations complètes et précises, notamment des guides de démarrage, des références API et des concepts. Utilisez des exemples de code pour illustrer les concepts et l'utilisation. Maintenez la documentation à jour, suivez les modifications et documentez les nouvelles fonctionnalités. Fournir une assistance et des ressources communautaires telles que des problèmes et des forums GitHub. Créez des exemples pratiques, tels que la documentation API.

Comment choisir le meilleur framework Golang pour différents scénarios d'application Comment choisir le meilleur framework Golang pour différents scénarios d'application Jun 05, 2024 pm 04:05 PM

Choisissez le meilleur framework Go en fonction des scénarios d'application : tenez compte du type d'application, des fonctionnalités du langage, des exigences de performances et de l'écosystème. Frameworks Go courants : Gin (application Web), Echo (service Web), Fibre (haut débit), gorm (ORM), fasthttp (vitesse). Cas pratique : construction de l'API REST (Fiber) et interaction avec la base de données (gorm). Choisissez un framework : choisissez fasthttp pour les performances clés, Gin/Echo pour les applications Web flexibles et gorm pour l'interaction avec la base de données.

Comment la courbe d'apprentissage des frameworks PHP se compare-t-elle à celle d'autres frameworks de langage ? Comment la courbe d'apprentissage des frameworks PHP se compare-t-elle à celle d'autres frameworks de langage ? Jun 06, 2024 pm 12:41 PM

La courbe d'apprentissage d'un framework PHP dépend de la maîtrise du langage, de la complexité du framework, de la qualité de la documentation et du support de la communauté. La courbe d'apprentissage des frameworks PHP est plus élevée par rapport aux frameworks Python et inférieure par rapport aux frameworks Ruby. Par rapport aux frameworks Java, les frameworks PHP ont une courbe d'apprentissage modérée mais un temps de démarrage plus court.

Explication pratique détaillée du développement du framework Golang : questions et réponses Explication pratique détaillée du développement du framework Golang : questions et réponses Jun 06, 2024 am 10:57 AM

Dans le développement du framework Go, les défis courants et leurs solutions sont les suivants : Gestion des erreurs : utilisez le package d'erreurs pour la gestion et utilisez un middleware pour gérer les erreurs de manière centralisée. Authentification et autorisation : intégrez des bibliothèques tierces et créez un middleware personnalisé pour vérifier les informations d'identification. Traitement simultané : utilisez des goroutines, des mutex et des canaux pour contrôler l'accès aux ressources. Tests unitaires : utilisez les packages, les simulations et les stubs gotest pour l'isolation, ainsi que les outils de couverture de code pour garantir la suffisance. Déploiement et surveillance : utilisez les conteneurs Docker pour regrouper les déploiements, configurer les sauvegardes de données et suivre les performances et les erreurs avec des outils de journalisation et de surveillance.

Comparaison des performances du framework Golang : mesures pour faire des choix judicieux Comparaison des performances du framework Golang : mesures pour faire des choix judicieux Jun 05, 2024 pm 10:02 PM

Lors du choix d'un framework Go, les indicateurs de performance clés (KPI) incluent : le temps de réponse, le débit, la simultanéité et l'utilisation des ressources. En évaluant et en comparant les KPI des frameworks, les développeurs peuvent faire des choix éclairés en fonction des besoins des applications, en tenant compte de la charge attendue, des sections critiques en termes de performances et des contraintes de ressources.

Quelle est la relation entre le cache Golang et les verrous ? Quelle est la relation entre le cache Golang et les verrous ? Jun 05, 2024 pm 04:08 PM

Dans les applications Golang, la mise en cache et le verrouillage sont étroitement liés. Les caches sont utilisés pour accélérer l'accès aux données, tandis que les verrous sont utilisés pour contrôler l'accès simultané aux ressources partagées. Les données mises en cache peuvent être lues par plusieurs processus en même temps, et la modification des données dans le cache nécessite l'utilisation de verrous pour garantir l'intégrité des données. Les modifications du cache persistant nécessitent également l'utilisation de verrous pour empêcher d'autres processus de modifier les données en même temps. Dans des cas pratiques, des verrous en lecture-écriture peuvent être utilisés pour protéger le cache afin de garantir que plusieurs processus n'écriveront pas dans le cache en même temps avant de modifier le cache. Comprendre la relation entre la mise en cache et le verrouillage est essentiel pour créer des applications Golang offrant une concurrence et des performances excellentes.

See all articles