Maison > développement back-end > tutoriel php > Étapes pour utiliser la mise en cache Memcache dans Discuz

Étapes pour utiliser la mise en cache Memcache dans Discuz

PHPz
Libérer: 2023-03-06 14:48:02
original
3623 Les gens l'ont consulté

discuzUne variété de caches peuvent être utilisés, nous ne parlons ici que du cache de données. discuz prend en charge les méthodes de mise en cache telles que redis et memcache. Il vous suffit de le définir dans /config/config_global.php et il peut être utilisé si l'environnement le prend en charge.

En fait, la lecture et l'écriture du cache sont relativement simples. Le code est le suivant :

require_once libfile('function/cache'); //加载缓存类  
  
savecache($cachename, $data); //写缓存  
  
loadcache($cachename); //读缓存,将缓存写到$_G变量中,通过读取$_G['cache']来获取缓存数据。
Copier après la connexion

où savecache( ) écrit les données dans Set the cache (telles que memcacheredisxpc, etc.), et le cache sera enregistré dans la table common_syscache.

Lors de l'utilisation de loadcache(), la méthode fetch_all dans la classe table_common_syscache sera appelée pour obtenir le cache

1. Déterminez d'abord si le cache mémoire est défini. Si c'est le cas, lisez Pour les données mises en cache en mémoire, si les données existent, elles seront renvoyées directement. Si elles n'existent pas et que le cache mémoire n'est pas défini, cela passera à l'étape 2.

2. Déterminez ensuite si le cache du fichier est défini. Si c'est le cas, lisez les données du fichier si les données existent, elles seront renvoyées directement. le cache de fichiers n'est pas défini, passez à l'étape 3.

3. Lisez les données de la table common_syscache et renvoyez-les. (Ces aspects doivent donc être pris en considération lors de la suppression du cache)

La clé est de vider le cache, ce qui peut être fait dans le global->Performance Optimisation->Optimisation de la mémoire Certains paramètres sont optimisés, et le cache spécifié peut également être vidé directement dans la gestion du cache mémoire. Mais pour un cache personnalisé, vous devez développer votre propre fonction pour le vider. Dans mon environnement, le cache memcache est activé, puis la fonction memory() intégrée au système est utilisée pour vider le cache. Cependant, lorsque j'utilise loadcache() pour lire des données, je constate que le cache existe toujours. La raison en est que memory() peut effacer les données memcache, mais elle n'efface pas la table commom_syscache, elle existe donc toujours lorsque loadcache() est utilisée. Plus tard, j'ai vérifié et trouvé la fonction deletegroupcache(). Afin de m'adapter à la situation globale, j'ai simplement écrit la fonction deletecache() dans /source/function/function_core.php. Le code est le suivant :

function deletecache($cachenames) {  
    if(!empty($cachenames)) {  
        C::t('common_syscache')->delete($cachenames);  
    }  
}
Copier après la connexion


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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal