sql >> Database >  >> NoSQL >> Redis

Redis gebruiken als cache voor een mysql-database

Ja, Redis is daar goed voor. Maar om de essentie te begrijpen, zijn er in principe twee benaderingen voor caching. Afhankelijk van of je een framework gebruikt (en welk) of niet, heb je mogelijk de eerste optie beschikbaar in standaard of met gebruik van een plug-in:

  1. Cache databasequery's, dat wil zeggen:geselecteerde query's en hun resultaten worden in redis bewaard voor snellere toegang gedurende een bepaalde tijd of tot het wissen van de cache (handig na het updaten van de database). In dit geval kunt u ingebouwde mysql-querycaching gebruiken, dit is eenvoudiger dan het gebruik van een extra sleutelwaardeopslag, of u kunt de standaard database-integratie overschrijven met uw eigen klasse door gebruik te maken van cache (bijvoorbeeld http://pythonhosted.org /johnny-cache/).
  2. Aangepaste caching, dat wil zeggen uw eigen structuren maken die in de cache moeten worden bewaard en deze periodiek of handmatig opnieuw vullen met gegevens die uit de database zijn opgehaald. Het is flexibeler en potentieel krachtiger, omdat u ingebouwde redis-functies kunt gebruiken, zoals lijsten of gesorteerde sets, waardoor de overhead voor updates veel kleiner is. Het vereist wat meer codering, maar het biedt meestal betere resultaten, omdat het meer op maat is. Een goed voorbeeld is het bijhouden van topartikelen in de vorm van een redis-lijst met id's en vervolgens toegang krijgen tot geserialiseerde artikel(en) met een opgegeven id vanuit redis. U kunt dat artikel ongenormaliseerd houden - dwz. geserialiseerd object kan zowel een gebruikers-ID als een gebruikersnaam bevatten, zodat u de overhead van extra zoekopdrachten tot een minimum kunt beperken.

Het is aan jou om te beslissen welke aanpak je kiest, persoonlijk ga ik bijna altijd voor aanpak nummer twee. Maar alles hangt natuurlijk af van hoeveel tijd je hebt en wat de toepassing zou moeten doen - je kunt net zo goed beginnen met mysql-querycaching en als de resultaten niet goed genoeg zijn, overstappen op redis en aangepaste caching.




  1. Een-een- en een-veel-referenties verwijderen - Mongoose

  2. redis inzetten voor heroku kan geen verbinding maken

  3. Pizza Tribes - Een op browser gebaseerd realtime strategiespel voor meerdere spelers

  4. Zoek naar documenten waarvan de matrixgrootte groter is dan 1