sql >> Database >  >> NoSQL >> Redis

redis voor loggen

Houd er rekening mee dat Redis een in-memory database is (zelfs als het de gegevens op schijf kan bewaren). De gegevens die u in Redis invoert, moeten in het geheugen passen.

Het voorstel in het artikel dat u noemt, gaat over het gebruik van Redis als een gedistribueerd wachtrijsysteem. Werkprocessen halen de items uit de wachtrij en schrijven ze naar schijf, dus er zijn niet zoveel items in het Redis-geheugen. Dit ontwerp heeft een fout:als de werkprocessen de gegevens niet snel genoeg naar schijf kunnen schrijven, zal het geheugengebruik van Redis exploderen - dus het moet worden beperkt door configuratie (Redis maxmemory-parameter) of software (de wachtrij bij het invoegen inkorten, of leegmaken) de wachtrij wanneer deze vol is).

Nu werkt uw voorstel niet echt omdat alle gegevens die u in Redis schrijft in het geheugen worden bewaard (zelfs als ze door Redis zelf op schijf worden bewaard).

Een ander punt is dat u Redis niet kunt opvragen. Redis is geen relationele database, het ondersteunt geen ad-hoc-querymechanisme, alleen opdrachten met eerder gedefinieerde toegangspaden. Als u gegevens met verschillende parameters wilt zoeken, moet u anticiperen op alle mogelijke zoekopdrachten en de relevante gegevensstructuren (set, gesorteerde sets, enz ...) bouwen op het moment van invoegen.

Een andere winkel (MongoDB of een relationele database) is waarschijnlijk veel beter geschikt voor uw gebruik.



  1. Welke parameters worden doorgegeven aan Mongoose-callbacks

  2. MongoDB NOW Aggregatievariabele

  3. Hoe MongoDB op Heroku . te implementeren

  4. Wat is profiel? en Web en Worker