Záleží na tom, co potřebujete, obecně si myslím, že:
- O výkony byste se neměli příliš starat. Redis je rychlejší na jádro s malými hodnotami, ale memcached je schopen používat více jader s jedním spustitelným souborem a TCP portem bez pomoci klienta. Také memcached je rychlejší s velkými hodnotami v řádu 100k. Redis se nedávno hodně zlepšil o velké hodnoty (nestabilní větev), ale stále je memcached v tomto případě použití rychlejší. Jde o to, že ani jedno nebo druhé pravděpodobně nebude vaším úzkým hrdlem pro dotaz za sekundu, který mohou poskytnout.
- Měli byste se starat o využití paměti. U jednoduchých párů klíč–hodnota je paměť memcach efektivnější. Pokud používáte hash Redis, Redis je efektivnější z hlediska paměti. Závisí na případu použití.
- Měli byste se starat o perzistenci a replikaci, dvě funkce dostupné pouze v Redis. I když je vaším cílem vytvořit mezipaměť, pomůže vám, že po upgradu nebo restartu budou vaše data stále tam.
- Měli byste se starat o druh operací, které potřebujete. V Redis existuje mnoho složitých operací, i když vezmeme v úvahu případ použití mezipaměti, často můžete udělat mnohem více v jediné operaci, aniž byste museli zpracovávat data na straně klienta (někdy je potřeba hodně I/O). Tyto operace jsou často stejně rychlé jako obyčejné GET a SET. Pokud tedy nepotřebujete pouze GET/SET, ale složitější věci, může vám Redis hodně pomoci (přemýšlejte o ukládání do mezipaměti časové osy).
Bez případu použití je teď těžké vybrat to správné, ale myslím si, že pro spoustu věcí má Redis smysl, protože i když ho nechcete používat jako DB, protože jste mnohem schopnější, můžete vyřešit více problémů, nejen ukládání do mezipaměti, ale dokonce i zasílání zpráv, hodnocení a tak dále.
P.s. samozřejmě bych mohl být zaujatý, protože jsem hlavní vývojář projektu Redis.