Последние несколько недель я работал с memcached и только что узнал о Redis. Когда я прочитал эту часть их readme, у меня внезапно возникло теплое, уютное чувство в желудке:
Redis можно использовать в качестве memcached на стероидах, потому что он такой же быстрый, как memcached, но с большим количеством функций. Как и memcached, Redis также поддерживает установку тайм-аутов для клавиш, так что эта клавиша будет автоматически удаляться по истечении заданного промежутка времени.
Это звучит потрясающе. Я также нашел эту страницу с тестами: http://www.ruturaj.net/redis-memcached-tokyo-tyrant-mysql-comparison
Итак, честно - действительно ли memcache - это тот старый динозавр, который является плохим выбором с точки зрения производительности по сравнению с этим новичком по имени Redis?
Я не много слышал о Redis ранее, таким образом, подход к моему вопросу!
источник
Ответы:
Memcache является отличным инструментом, все еще и очень надежным.
вместо того, чтобы смотреть на эту проблему с точки зрения снижения скорости работы в диапазоне <100 мс, посмотрите на производительность на «класс» программного обеспечения.
источник
Зависит от того, что вам нужно, в общем, я думаю, что:
Без прецедента сейчас трудно выбрать правильный вариант, но я думаю, что для многих вещей Redis имеет смысл, поскольку даже если вы не хотите использовать его в качестве БД, будучи гораздо более способным, вы можете решить больше проблем, не только кэширование, но даже обмен сообщениями, ранжирование и так далее.
PS Конечно, я могу быть предвзятым, так как я ведущий разработчик проекта Redis.
источник
Redis
имеет гораздо больше функциональности;Redis
также намного проще. Не требуется никаких зависимостей;Redis
также лучше;memcached
что это немного быстрее, чемRedis
. Это не касается диска вообще;Redis
это лучший продукт, чемmemcached
.источник
То, что делает memcached, чего не делает Redis, - это самое недавнее изгнание значений из кэша. С memcached вы можете безопасно установить столько значений, сколько захотите, и когда они переполняют память, те, которые вы не использовали в последнее время, будут удалены. С Redis вы можете только приблизить это, установив тайм-аут на все; когда ему нужно освободить память, он посмотрит на три случайных ключа и удалит тот, который ближе всего к сроку действия.
Это главное отличие, если вы просто используете его как кеш.
источник
Вы также можете посмотреть на Membase.
http://www.northscale.com/products/membase_server.html
Я не использовал его, но, похоже, он похож на Redis в том, что это хранилище KV, ориентированное на память, с постоянством. Основные отличия от того, что я вижу:
Redis имеет один уровень разгрузки данных на диск (ВМ) на основе гибридного алгоритма, который учитывает как LRU, так и размер объекта.
Membase использует проводной протокол memcached - полезен в качестве пути обновления для существующих приложений
Выбор может зависеть от степени, в которой ваше приложение может использовать дополнительные функции манипулирования данными в Redis.
источник
Hazelcast изначально поддерживает протокол memcached
https://web.archive.org/web/20140601010929/http://hazelcast.org/docs/latest/manual/html-single/hazelcast-documentation.html
и, таким образом, является современной альтернативой memcached. Вы должны попробовать все решения, чтобы увидеть, что работает лучше для вас.
источник