sql >> Databasteknik >  >> NoSQL >> Redis

Ska jag använda redis för att lagra ett stort antal binära filer?

Jag skulle inte använda Redis för en sådan uppgift. Andra produkter kommer att passa bättre IMO.

Redis är ett datalager i minnet. Om du vill lagra 10-20 TB data behöver du 10-20 TB RAM, vilket är dyrt. Dessutom är minnesallokatorn optimerad för små objekt, inte stora. Du skulle förmodligen behöva klippa dina filer i olika små bitar, det skulle inte vara riktigt bekvämt.

Redis tillhandahåller ingen ad hoc-lösning för HA och failover. En master/slav-replikering tillhandahålls (och fungerar ganska bra), men utan stöd för automatisering av denna failover. Klienter måste vara smarta nog att byta till rätt server. Något på serversidan (men detta är ospecificerat) måste byta roller mellan master- och slavnoder på ett tillförlitligt sätt. Med andra ord, Redis tillhandahåller bara en gör-det-själv HA/failover-lösning.

Sharding måste implementeras på klientsidan (som med memcached). Vissa kunder har stöd för det, men inte alla. Den snabbaste klienten (hiredis) gör det inte. Hur som helst, saker som ombalansering måste implementeras ovanpå Redis. Redis Cluster som ska stödja sådana skärningsfunktioner är inte redo än.

Jag skulle föreslå att du använder några andra lösningar. MongoDB med GridFS kan vara en möjlighet. Hadoop med HDFS är en annan. Om du gillar banbrytande projekt, kanske du vill prova Elliptics Network.




  1. Uppdatera kapslade arrayobjekt baserat på en egenskap i MongoDB

  2. kommandoradsautentisering av mongo misslyckas

  3. uppgradera mongodb

  4. Vad ska jag välja:MongoDB/Cassandra/Redis/CouchDB?