Зависи от какво имате нужда, като цяло мисля, че:
- Не бива да се интересувате твърде много от изпълненията. Redis е по-бърз на ядро с малки стойности, но memcached може да използва множество ядра с един изпълним файл и TCP порт без помощ от клиента. Също така memcached е по-бърз с големи стойности от порядъка на 100k. Redis наскоро подобри много за големите стойности (нестабилен клон), но все пак memcached е по-бърз в този случай на употреба. Въпросът тук е:нито едното, нито другото вероятно няма да ви бъдат пречка за заявката в секунда, която могат да доставят.
- Трябва да се грижите за използването на паметта. За прости двойки ключ-стойност memcached е по-ефективен от паметта. Ако използвате хешове на Redis, Redis е по-ефективен от паметта. Зависи от случая на употреба.
- Трябва да се грижите за постоянството и репликацията, две функции, налични само в Redis. Дори ако целта ви е да изградите кеш, това помага, че след надстройка или рестартиране данните ви все още са там.
- Трябва да се интересувате от вида операции, от които се нуждаете. В Redis има много сложни операции, дори само като се има предвид случая на използване на кеширане, често можете да направите много повече с една операция, без да изисквате обработката на данните от страна на клиента (понякога са необходими много I/O). Тези операции често са толкова бързи, колкото обикновените GET и SET. Така че, ако не се нуждаете само от GET/SET, а от по-сложни неща, Redis може да помогне много (помислете за кеширането на времевата линия).
Без случай на употреба е трудно да се избере правилния в момента, но мисля, че за много неща Redis има смисъл, тъй като дори когато не искате да го използвате като DB, като сте много по-способни, можете да решите повече проблеми, не само кеширане, но дори и съобщения, класиране и т.н.
P.s. разбира се, бих могъл да бъда предубеден, тъй като съм главният разработчик на проекта Redis.