Database Reference
In-Depth Information
Tabelle user
User_id username
1 admin
2 okurow
Tabelle user_prop
User_id passwort alter
1 party 18
2 wheels 42
Um einen neuen User anzulegen, muss zunächst die Tabelle user auf den Namen untersucht
werden, und wenn nicht vorhanden, werden beide Tabellen mit den neuen Werten gefüllt.
Mit Redis gibt es mehrere Möglichkeiten, diese Struktur umzusetzen.
1. Alles macht das Backend
In dieser Variante werden alle Daten als JSON in einem simplen Key gespeichert. Hierbei
muss das Backend die Verwaltung der ID's selber vornehmen. Die einzige „Intelligenz“ ,
die wir an Redis stellen, ist, das Einfügen eines neuen Users nur dann zu erlauben, wenn es
den Usernamen noch nicht gibt:
>SETNX user:admin '{“id”:1, “name”:”admin,
“passwort”,”party”,”alter”:”18” }'
Der Nachteil ist klar: Wir müssen den Usernamen kennen, um auf die Attribute zugreifen
zu können, und es gibt keine Möglichkeit (abgesehen von der langsamen KEYS-Funktion),
alle User aufzulisten. Weit praktischer ist da die zweite Möglichkeit.
2. Redis verwaltet ID's , Usernamen als Set, Properties als Hash
In diesem Fall überlassen wir Redis die Verwaltung der UserIDs, indem ein Key einen Zäh-
ler beinhaltet, der bei jedem Eintragen eines neuen Users eine neue ID zurück gibt: (int)
maxUserID. Um die Usernamen zu speichern und doppelte Einträge zu verhindern, werden
alle Usernamen in einem SET usernamen verwaltet. Durch das erfolgreiche Eintragen des
Usernamens in diese Liste stellen wir einerseits sicher, dass jeder Name nur einmal exis-
tiert und erhalten auch gleich eine Möglichkeit, mit SMEMBERS usernamen alle Userna-
men abzurufen. Als dritte Tabelle erzeugen wir eine Hashtabelle pro User, deren Key den
Usernamen beinhaltet, und in deren Hashes die Eigenschaften eines Users enthalten sind:
username :properties.
Insgesamt sind also folgende Daten in Redis gespeichert:
maxUserID
usernamen
admin:properties
okurow:properties
Search WWH ::




Custom Search