Maison  >  Article  >  développement back-end  >  Application de Memcached dans .net

Application de Memcached dans .net

黄舟
黄舟original
2017-03-13 13:18:221376parcourir

1. Installation et configuration du serveur

1) Extrayez le fichier dans c:memcached (vous pouvez également choisir n'importe quel emplacement)

2) Saisissez 'c:memcachedmemcached.exe -d install' sur la ligne de commande

3) Saisissez 'c:memcachedmemcached.exe -d start' sur la commande ligne, cette commande démarre Memcached , le port d'écoute par défaut est 11211

4) Vous pouvez consulter son aide via memcached.exe -h

Deuxièmement, l'installation et la référence du client



Pour que le client puisse faire fonctionner le serveur, nous avons un variété d'options, ici, nous avons choisi d'utiliser dll Parce que la méthode dll est plus rapide à générer et évite des paramètres fastidieux dans le fichier de configuration, ce qui est plus pratique. Pour les commandes telnet, etc., nous pouvons les utiliser côté serveur pour vérifier les données, vérifier le taux de réussite du cache, etc.

1. Références sur Dll

Après avoir téléchargé la Dll, ajoutez la référence de l'image dans le projet

2, il peut y avoir des problèmes

Je présente log4net Lorsque vous travaillez avec Memcached.ClientLibray, il a été introduit et l'utilisation a également été ajoutée au fichier de classe, mais une erreur a été signalée lors de sa génération. Plus tard, il a été constaté qu'il s'agissait d'un problème avec la version du framework .net. version de la version indiquée ci-dessous vers .net framework 4, elle a été générée correctement.

Trois, compréhension approfondie du mécanisme Memcached

1. , protocole simple

1) Architecture C/S, à ce moment memcached est le serveur, et nous pouvons utiliser divers programmes clients pour nous connecter au serveur memcached.

2) La communication serveur-client de Memcached n'utilise pas XML ni d'autres formats, mais utilise un simple protocole basé sur des lignes de texte. Par conséquent, les données peuvent également être enregistrées et obtenues sur Memcached via telnet. .

2, traitement d'événements basé sur libevent

1) Libevent est un ensemble d'encapsulation d'interface de traitement d'événements multiplateforme, compatible avec ces systèmes d'exploitation system : Traitement des événements des systèmes d'exploitation tels que Windows/Linux/BSD/Solaris.

2) Memcached utilise libevent pour gérer les connexions réseau simultanées, ce qui peut maintenir la capacité de répondre rapidement même dans de grandes situations de concurrence.

3. Méthode de stockage en mémoire intégrée

Afin d'améliorer les performances, les données enregistrées dans memcached sont stockées dans la mémoire intégrée. espace de stockage mémoire de memcahced. Étant donné que les données n'existent qu'en mémoire, le redémarrage de Memcached et le redémarrage du système d'exploitation entraîneront la disparition de toutes les données. De plus, une fois que la capacité du contenu atteint la valeur spécifiée, les caches inutilisés sont automatiquement supprimés sur la base de l'algorithme LRU (Least Récemment utilisé). Memcached lui-même est un serveur conçu pour mettre en cache, cacher et ne pas trop penser à la persistance des données.

4, distribué basé sur le client

Bien que Memcached soit un serveur de cache "distribué", le serveur n'a pas de fonctions distribuées. Les memcached individuels ne communiquent pas entre eux pour partager des informations. Ainsi, la manière d'effectuer la distribution dépend entièrement de la mise en œuvre du client. Si vous êtes intéressé, vous pouvez télécharger l'algorithme de hachage depuis Baidu.




Expérience code :


Quatre, memcached et session

1) Ils ont des cycles de vie différents

2) L'objectif des problèmes à résoudre est différent

Cinquièmement, memcached et Cache

le cache est utilisé . Les éléments de gestion d'état dans Net semblent également assez puissants : 1. Dépendances du cache : vous pouvez compter sur des fichiers, des bases de données ou des combinaisons de dépendances, et il fournit un mécanisme de notification pour l'expiration des données afin de nous permettre de mettre à jour les données à temps lorsqu'elles expirent. . 2. Utilisation du mécanisme de notification : dans le passé, le mécanisme d'interrogation était utilisé pour déterminer si les données avaient expiré. Cela ressemblait à une boucle pour voir si les données avaient été mises à jour. Si elles avaient été mises à jour, le cache était alors mis à jour. temps. Mais j'ai toujours l'impression que le mécanisme d'interrogation est très étrange. Par exemple, lorsque je fais bouillir une casserole d'eau à la maison, je ne devrais pas toujours vérifier si l'eau bout, mais je devrais vérifier si l'eau bout, puis un le son me dira que l'eau bout. C'est ce que signifie le mécanisme de notification. Quant au principe du mécanisme de notification, vous pouvez vérifier le modèle d'observateur parmi les 23 modèles de conception, celui-ci est assez utilisé.

Lorsque j'ai utilisé memcached pour la première fois, pour des raisons de cache, j'ai naturellement pensé à ce mécanisme de notification. Après vérification, il semble que memcached ne l'ait pas si vous souhaitez créer un message expiré. mettez-vous à jour, seul le mécanisme d'interrogation peut être utilisé. Mais en réfléchissant aux scénarios d’utilisation de memcached, nous constaterons qu’un délai d’expiration est suffisant.

6. Scénarios applicables pour memcached

1) Les données fréquemment changeantes et instables n'ont pas besoin d'être stockées en temps réel (comme les utilisateurs Statut en ligne, nombre de personnes en ligne)

2) Actualités du site portail, etc., je pense que la page statique de la page ne peut toujours pas répondre aux exigences et peut être mise en place Memcached (avec requête jquery AJAX) 🎜>

……

7. Problèmes de sécurité de memcached

Puisque memcached n'a pas de mécanisme d'authentification intégré, il est possible de se connecter en utilisant telnet pour accéder au port IP, puis à l'intérieur Les données deviennent des agneaux à abattre. Afin d'éviter d'être piraté, nous pouvons fermer le port d'accès externe sur le serveur memcached et autoriser uniquement l'accès aux programmes locaux.

Huit, comparaison de technologies similaires

1, Redis

1) Prise en charge de plus de valeur tapez

2) Persistance : redis écrira périodiquement les données mises à jour sur le disque ou écrira les opérations de modification dans des fichiers d'enregistrement supplémentaires, et sur cette base, il est implémenté maître-esclave (maître-esclave) synchronisation

3) Prend en charge la synchronisation maître-esclave : les données peuvent être synchronisées du serveur maître vers n'importe quel nombre de serveurs esclaves, et le serveur esclave peut être associé à d'autres serveurs esclaves du serveur principal. Cela permet à Redis d'effectuer une réplication d'arborescence à un seul niveau. La sauvegarde peut écrire des données intentionnellement ou non. Étant donné que le mécanisme de publication/abonnement est entièrement implémenté, lorsque la base de données esclave synchronise l'arborescence n'importe où, elle peut s'abonner à un canal et recevoir l'enregistrement complet de publication des messages du serveur maître. La synchronisation est utile pour l'évolutivité et la redondance des données des opérations de lecture.

2, EhCache

1) Le framework de mise en cache en cours de processus Java pur, rapide et performant, est le CacheProvider par défaut dans Hibernate .

2) Cache distribué Java open source : principalement pour le cache général, Java EE et les conteneurs légers. Il comprend de la mémoire et du stockage sur disque, des chargeurs de cache, des extensions de cache, des gestionnaires d'exceptions de cache, un filtre de servlet de cache gzip, la prise en charge des API REST et SOAP, et bien plus encore.

. . . . . . . . .

Ce qui précède est le contenu de l'application Memcached en .net. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

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
Article précédent:Xamarin pour tout le mondeArticle suivant:Xamarin pour tout le monde