sql >> Database teknologi >  >> NoSQL >> Redis

Find nøgle efter værdi

En af de ting, du lærer hurtigt, mens du arbejder med redis, er, at du får designet din datastruktur omkring dine adgangsbehov, især når det kommer til relationer (det er trods alt ikke en relationel database)

Der er ingen måde at søge efter "værdi" med en O(1) tidskompleksitet, som du allerede har bemærket, men der er måder at nærme sig det, du beskriver, ved hjælp af redis. Her er, hvad jeg vil anbefale:

  • Gem dine brugerdata efter bruger-id (f.eks. en hash), som du allerede gør.
  • Har et ekstra sæt for hvert underviser-id, der indeholder alle bruger-id'er, der svarer til det pågældende underviser-id.

Dette kan virke som at duplikere relationens data, da dine brugerdata skulle gemme forelæsnings-id'et, og dine forelæsningsdata ville gemme bruger-id'er, men det er den (lille) pris at betale, hvis man skal bygge relationer i et nej -relationel datalager som redis. Rent praktisk fungerer dette godt; Hukommelse er sjældent en flaskehals for små datasæt (tænk tusindvis af id'er).

For at få et bedre billede af, hvordan folk bruger redis til at modellere applikationer med relationer, anbefaler jeg at læse Design og implementering af en simpel Twitter-klon og kildekoden til Lamernews, som begge er skrevet af redis-forfatteren Salvatore Sanfilippo.



  1. Hvordan forbindes med mongodb ved hjælp af sailsjs v0.10?

  2. node.js database

  3. Indkapsling af Unicode fra redis

  4. Hvordan omdøber jeg felter, når jeg udfører søgning/projektion i MongoDB?