Question

J'ai travaillé un peu avec Memcached les dernières semaines et viens de découvrir Redis. Quand je lis cette partie de leur readme, je me suis tout à coup un sentiment chaud et douillet dans mon estomac:

  

Redis peut être utilisé comme memcached sur les stéroïdes parce est aussi rapide que   memcached mais avec un certain nombre de   caractéristiques plus.   Comme memcached, Redis prend également en charge la mise en temporisations aux touches afin   que cette clé sera automatiquement   enlevé quand un laps de temps donné   passe.

Cela semble incroyable. Je trouve également cette page avec des repères: http: //www.ruturaj .net / Redis-memcached-tokyo-tyran-mysql-comparaison

Alors, honnêtement - memcache Est-ce vraiment ce vieux dinousaur qui est un mauvais choix du point de vue de la performance par rapport à ce nouveau venu appelé Redis

?

Je n'ai pas entendu beaucoup de choses sur Redis précédemment, ce qui l'approche de ma question!

Était-ce utile?

La solution

Memcache est un excellent outil encore et très fiable.

au lieu de regarder cette question du point de vue de la descendre qui est plus rapide au <100 ms gamme, regardez la performance par « classe » du logiciel.

  • Est-il utiliser uniquement la RAM locale? -> le plus rapide
  • Est-il utiliser RAM à distance? -> rapide
  • Est-il utiliser RAM plus hardddisk -.> Oh Hurm
  • Est-il utiliser uniquement harddisk -> run

Autres conseils

dépend de ce que vous avez besoin, en général, je pense que:

  • Vous ne devriez pas trop de soin sur les performances. Redis est plus rapide par cœur avec de petites valeurs, mais memcached est capable d'utiliser plusieurs cœurs avec un seul exécutable et le port TCP sans l'aide du client. Aussi memcached est plus rapide avec de grandes valeurs de l'ordre de 100k. Redis récemment amélioré beaucoup de grandes valeurs (branche instable) mais toujours memcached est plus rapide dans ce cas d'utilisation. Le point ici est:., Ni l'un ou l'autre volonté va probablement être votre goulot d'étranglement pour la requête par seconde, ils peuvent fournir
  • Vous devriez se soucier de l'utilisation de la mémoire. Pour de simples paires valeur clé Memcached est plus efficace mémoire. Si vous utilisez hash Redis, Redis est plus efficace mémoire. Cela dépend du cas d'utilisation.
  • Vous devriez prendre soin de la persistance et la réplication, deux fonctionnalités disponibles uniquement dans Redis. Même si votre objectif est de construire une cache, il aide qu'après une mise à niveau ou un redémarrage vos données sont toujours là.
  • Vous devriez se soucier du type d'opérations dont vous avez besoin. En Redis il y a beaucoup d'opérations complexes, même simplement considérer le cas d'utilisation de la mise en cache, vous pouvez souvent faire beaucoup plus en une seule opération, sans nécessiter des données à traiter côté client (beaucoup d'E / S est parfois nécessaire). Ces opérations sont souvent aussi vite que GET simple et SET. Donc, si vous n'avez pas besoin juste GET / SET, mais les choses plus complexes Redis peut aider beaucoup (pensez à la mise en cache de la chronologie).

Sans un cas d'utilisation est difficile de choisir le bon moment, mais je pense que pour beaucoup de choses Redis est logique puisque même si vous ne voulez pas l'utiliser comme DB, étant beaucoup plus capable que vous pouvez résoudre plus de problèmes, non seulement la mise en cache mais même la messagerie, le classement, et ainsi de suite.

P.s. bien sûr, je pourrais être biaisé puisque je suis le développeur principal du projet Redis.

  

Alors, honnêtement - memcache est vraiment   vieux dinousaur qui est un mauvais choix   du point de vue de la performance lorsque   par rapport à ce nouveau venu appelé   Redis?

  • caractéristiques Comparaison cochés alors Redis a ainsi plus de fonctionnalités;
  • En comparant la facilité d'installation Redis est également beaucoup plus facile. Aucune dépendance nécessaire;
  • En comparant le développement actif Redis est également mieux;
  • Je crois memcached est un peu plus rapide que Redis. Il ne touche pas le disque du tout;
  • Mon avis est que Redis est meilleur produit que memcached.

Qu'est-ce que memcached fait ça ne fait pas Redis est éviction moins récemment utilisé des valeurs du cache. Avec memcached, vous pouvez en toute sécurité mis autant de valeurs que vous le souhaitez, et quand ils débordent la mémoire, ceux que vous ne l'avez pas utilisés seront récemment être supprimés. Avec Redis, vous ne pouvez approcher ce, en fixant un délai d'attente sur tout; quand il a besoin de libérer de la mémoire, il se penchera sur trois touches aléatoires et supprimer celui qui est le plus proche d'expirer.

C'est la principale différence, si vous êtes juste à l'utiliser comme cache.

Vous pouvez également regarder Membase.

http://www.northscale.com/products/membase_server.html

Je l'ai pas utilisé, mais il semble être similaire à Redis en ce qu'elle est un magasin de KV centrée sur la mémoire avec persistance. Les principales différences de ce que je peux voir sont:

  • Redis a beaucoup plus de capacité de manipulation de données (ensembles ordonnés, etc.)
  • Redis a un projet Cluster Redis en attente d'ajouter une évolutivité horizontale
  • Redis a un seul niveau de déchargement de données sur le disque (VM) sur la base d'un algorithme qui tient compte à la fois hybride LRU et la taille de l'objet.

  • Membase utilise le protocole de fil memcached - utile comme un chemin de mise à niveau pour les applications existantes

  • Membase est mis en place à l'échelle horizontalement en utilisant une approche distribuée Hashtable
  • Membase peut prendre en charge plusieurs niveaux de données Offload en utilisant une approche LRU (très rarement utilisé va sur le disque, des choses un peu va rarement SSD, séjours stuff fréquents dans la RAM)
  • Vous ne savez pas sur la capacité TTL Membase.

Le choix peut dépendre du degré auquel votre application peut tirer parti de la fonctionnalité de manipulation de données supplémentaires dans Redis.

Hazelcast prend en charge le protocole memcached nativement

https://web.archive.org/web/20140601010929/http://hazelcast.org/docs/latest/manual/html-single/hazelcast-documentation.html

et est donc une alternative moderne à memcached. Vous devriez essayer toutes les solutions pour voir ce qui fonctionne le mieux pour vous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top