Dans mon projet actuel, j'utilise MemCache pour stocker des paires de la valeur clé, mais comme la communication se produit sur la prise entre mon processus et le memcache causant les énormes latences. Nous sommes allés avec Memcache parce que nous avons eu besoin de stocker une grande quantité de paires de la valeur clé. Mais maintenant, je veux stocker le dictionnaire comme une source de données globale dans mon processus. Est-ce que c'est une bonne chose? Parce que le dictionnaire sera stocké dans l'espace d'adressage des processus. Suggestions s'il vous plaît .... p>
3 Réponses :
La raison habituelle d'utiliser Memcached est que vous souhaitez distribuer em> le cache parmi plusieurs machines, dans le but de disposer des données disponibles em> sur toutes les machines, tandis que Utilisant également le stockage em> de toutes les machines. Si ces exigences ne s'appliquent pas à vous et que vous n'avez besoin que des données en cache sur une seule machine, alors memcached ne vous offre pas beaucoup de choses. Dans ce cas, déplacer le dictionnaire dans votre processus local pourrait être une bonne idée. P>
Si vos données n'est pas si grosse, vous pouvez simplement jeter votre dictionnaire python aux fichiers avec cpickle.dump ou marshal.dump et, le recharger à partir du fichier avec cpickle.load ou marshal.load et si vous avez besoin de vous inquiéter de Diskspace, vous pouvez utiliser BZ2 ou GZIP Compressez / décompressez pendant le fichier Lecture / réécriture. P>
J'ai écrit une réponse complète à ceci sur la page Memcached "À propos". J'ai attiré des images et tout. P>
En résumé: si vous avez plus d'un processus, le dictionnaire ne vous aidera pas. Si vous avez plus d'un processus / ordinateur, vous allez brûler des tonnes de mémoire qui pourraient être réutilisées de grandes façons qui vous permettent de gagner beaucoup d'argent et de vous faire plus de choses plus grandes. P>