sql >> Databasteknik >  >> NoSQL >> Redis

Hitta nyckel efter värde

En av de saker du lär dig snabbt när du arbetar med redis är att du får designa din datastruktur kring dina åtkomstbehov, speciellt när det kommer till relationer (det är trots allt inte en relationsdatabas)

Det finns inget sätt att söka efter "värde" med en O(1) tidskomplexitet som du redan märkt, men det finns sätt att närma sig det du beskriver med hjälp av redis. Det här är vad jag skulle rekommendera:

  • Lagra din användardata efter användar-id (t.ex. en hash) som du redan gör.
  • Ha en extra uppsättning för varje föreläsar-id som innehåller alla användar-ID som motsvarar det aktuella föreläsar-id.

Detta kan tyckas som att duplicera data för relationen, eftersom din användardata skulle behöva lagra föreläsnings-id, och din föreläsningsdata skulle lagra användar-ID, men det är det (lilla) priset att betala om man ska bygga relationer i ett nej -Relationsdatalager som redis. Rent praktiskt fungerar detta bra; minne är sällan en flaskhals för små datauppsättningar (tänk tusentals id).

För att få en bättre bild av hur människor använder redis för att modellera applikationer med relationer rekommenderar jag att du läser Design och implementering av en enkel Twitter-klon och källkoden för Lamernews, som båda är skrivna av redis-författaren Salvatore Sanfilippo.



  1. TypeError:db.collection är inte en funktion

  2. Databasanvändarhantering med ClusterControl

  3. När ska Redis? När ska man MongoDB?

  4. Kan inte hitta modulen 'socket.io/node_modules/redis'