sql >> Databasteknik >  >> NoSQL >> Redis

redis för loggning

Du måste komma ihåg att Redis är en databas i minnet (även om den kan lagra data till disk). Datan du lägger i Redis måste få plats i minnet.

Förslaget i artikeln du nämner handlar om att använda Redis som ett distribuerat kösystem. Arbetarprocesser köar objekten och skriver dem till disk, så det finns inte så många objekt i Redis minne. Den här designen har ett fel:om arbetarprocesserna inte kan skriva data tillräckligt snabbt till disken kommer Redis minnesförbrukning att explodera - så det måste begränsas av konfiguration (Redis maxmemory parameter) eller programvara (trimma kön vid insättningstidpunkten, eller tom kön när den är full).

Nu fungerar inte ditt förslag riktigt eftersom all data du skriver i Redis kommer att sparas i minnet (även om de finns kvar på disken av Redis själv).

En annan sak är att du inte kan fråga Redis. Redis är inte en relationsdatabas, den stöder ingen ad-hoc-frågemekanism, bara kommandon som involverar tidigare definierade åtkomstvägar. Om du vill söka data med olika parametrar måste du förutse alla möjliga sökningar och bygga relevanta datastrukturer (uppsättning, sorterade uppsättningar, etc ...) vid insättningstidpunkten.

En annan butik (MongoDB, eller en relationsdatabas) kommer förmodligen att passa mycket bättre för ditt användningsfall.



  1. MongoDB countDocuments()

  2. Hur konfigurerar du Embedded MongDB för integrationstestning i en Spring Boot-applikation?

  3. Mongodb :$in-operatör kontra många enskilda frågor

  4. Skapa ett 2dsphere Geospatial Index för sfäriska frågor i MongoDB