Maison  >  Article  >  développement back-end  >  Utilisation de Memcache dans la base de données PHP

Utilisation de Memcache dans la base de données PHP

墨辰丷
墨辰丷original
2018-05-18 14:24:261384parcourir

Cet article présente principalement l'utilisation de memcache dans le fonctionnement de la base de données PHP et analyse en détail les compétences de téléchargement, d'installation, de configuration et d'utilisation associées de memcache sous forme d'exemples. Les amis dans le besoin peuvent se référer à

. Les détails sont les suivants :

Dans une application Web hautement concurrente, les goulots d'étranglement d'accès à la base de données ont toujours été un gros problème. Une fois qu'une certaine limite est atteinte, la base de données peut facilement planter. Cependant, si nous mettons des données couramment utilisées. en mémoire, il peut être récupéré en cas de besoin. La récupération de la mémoire accélère non seulement la lecture, mais enregistre également les E/S de la base de données.

Introduction à Memcache

Memcache est un système de cache d'objets à mémoire distribuée hautes performances qui maintient une énorme table de hachage de mémoire unifiée, qui peut être utilisée pour stocker des données dans divers formats, notamment des images, des vidéos, des fichiers et des résultats de recherche dans des bases de données. En termes simples, les données sont appelées dans la mémoire puis lues depuis la mémoire, améliorant ainsi considérablement la vitesse de lecture.

La mémoire de memcache est la mémoire, le cache est le cache et la combinaison signifie le cache mémoire. Lorsque nous utilisons Memcache, nous lisons d'abord les données de Memcache. Si elles ne peuvent pas être trouvées, nous les rechercherons dans la base de données et stockerons les données dans Memcache, afin qu'elles puissent être facilement trouvées lors de notre prochaine recherche.

Remarque :

memcache est une base de données en mémoire En raison de la fonctionnalité de version fermée de la mémoire, memcache ne peut pas être conservé. . Contenu de stockage ;
Memcache est stocké en interne dans des blocs, donc les données supérieures à 1 Mo ne peuvent pas être stockées.
Memcache s'appuie sur la bibliothèque libevent. Avant l'installation, vous devez confirmer que la bibliothèque libevent a été installée.
Memcache est une base de données légère en mémoire qui prend uniquement en charge le stockage clé-valeur.
Il n'y a pas de paramètres d'utilisateur et de mot de passe dans Memcache, vous devez donc configurer le port du pare-feu pour restreindre les connexions pendant la configuration afin d'atteindre des objectifs de sécurité.
L'utilisation de repcached peut également facilement implémenter la réplication maître-esclave mono-maître de Memcache.

Scénarios d'application de memcache

Stockage d'une grande quantité de données qui ne nécessitent pas de stockage persistant ou existent déjà dans la base de données et ne changeront pas .
La lecture des données est très fréquente et nécessite moins de 1M.
Le type de données est de simples données clé-valeur.
Les résultats calculés et le fichier de modèle de page Web rendu.
En raison de ses propriétés d'incrémentation atomique, il peut être utilisé pour le comptage.
Étant donné que le délai d'expiration des données peut être défini, la date d'expiration est stockée. Cependant, il convient de noter que Memcache réutilisera la mémoire selon le principe du moins récemment utilisé (LRU) lorsque la mémoire allouée est insuffisante, ce qui peut entraîner la suppression anticipée d'informations.
Utilisez Memcache pour stocker les informations de session afin de réaliser un partage de session multi-serveur. Configuration requise : php.ini :

session.save_handler = memcache //设置session的储存方式为memcache 
memcache.hash_strategy = "consistent"//设置memcache的hash算法为一致性哈希算法。 
session.save_path = "tcp:/ip:port" //设置session储存的位置,多台memcache用逗号隔开。

Installation du serveur memcache

L'installation de memcache est simple. Le serveur peut être téléchargé depuis son site officiel http://www.memcached.org/, décompressez-le et exécutez-le dans son répertoire./configure -prefix=/path pour compiler, et puis make / make test / make install Obtenez un fichier binaire qui peut être directement exécuté.

Utilisez la commande ./memcached pour démarrer le serveur. Les paramètres courants sont les suivants :

-p port port d'écoute (par défaut : 11211)
-d exécutez Memcached. en arrière-plan
-u nom d'utilisateur Compte exécutant Memcached
-m n Utilisation maximale de la mémoire, l'unité est Mo, la valeur par défaut est 64 Mo
-c connexions Nombre maximum de connexions, la valeur par défaut est 1024

Commandes communes pour memcache

Après vous être connecté à memcache à l'aide du client memcache ou de telnet, vous pouvez utiliser memcache.

La structure des données Memcache est simple, il y a donc peu de commandes de ligne de commande. Analysons brièvement le format de commande avec une commande commune :

add key flags expire_time length \r\n value

.

drapeaux : s'il faut compresser/sérialiser, généralement 0.

expire_time : combien de temps il expirera après le stockage. L'unité est en secondes (s) et la durée maximale est de 30 jours. La durée supérieure à 30 jours est considérée comme un horodatage indiquant "quand expirera-t-elle". Si elle est définie sur 0, elle n'expirera jamais.

longueur : valeur de longueur. Après avoir entré la longueur et appuyé sur Entrée, la ligne de commande lira les caractères de longueur que vous entrez ensuite.

set key flags expire_time length  //如果有值则覆盖原值,没有则新增,add在有值时会存储失败
get key               //获取key的值
replace key flags expire_time length// 替换一个已存在的key
append/preappend key flags expire_time length// 给key的value后面/前面添加新内容。
preappend key flags expire_time length   // 给key的value前面添加新内容。
inc/dec key [n]             //key的值递增/递减1/[n]
delete key               //删除一个key
flush_all [n]              //[在n秒后]删除全部数据
stats [options]             //获取memcache[有关某一项]的详细信息

Extension et application Memcache de PHP

sur https:// Rechercher pecl.php.net/index.php pour obtenir le package d'extension Memcache requis.

Système Linux, sélectionnez directement la version (la dernière version stable est recommandée) à télécharger. Après la décompression, utilisez l'outil phpize dans le répertoire de décompression pour générer le fichier de configuration et utilisez-le pour l'installation. terminé, ajoutez l'extension dans /php.ini. Pour plus de détails, veuillez vous référer à l'article précédent : http://www.jb51.net/article/121314.htm.

Sous Windows, cliquez sur le lien "Windows logo DLL" sur le côté droit du lien, et dans la page nouvellement ouverte, sélectionnez l'extension dont vous avez besoin en fonction de la version, 32 bits/64 bits, du fil de discussion. -safe/non-thread-safe , des options spécifiques peuvent être vues sur la page phpinfo(); Une fois le téléchargement terminé, placez-le dans le répertoire phppath/ext/, puis ajoutez extension=php_memcacache.dll à php.ini ; redémarrez le serveur pour terminer l'installation.

在phpinfo()页面中看到memcache扩展后,说明安装成功,我们就可以在php脚本中使用关于memcache的类函数库了。

在手册中我们可以找到许多关于php的memcache扩展的使用,以下是一个典型的memcache使用流程。

$m=new Memcache();
$m->connect($host,$port);
$m->add($key,$value[,flags,$expire_time]);
$content=$m->get($key);
$m->close();

这是一个简单的memcache连接程序,在进行memcache分布式存储时,还需要用到$memcache->addServer()向memcache集群中添加服务器。

相关推荐:

ThinkPHP框架中使用Memcached缓存数据步骤详解

ThinkPHP框架中使用Memcached缓存数据的方法

php-memcached扩展安装

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:
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