Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Redis-Datenbanktabelle wie SQL entwerfen?

Redis hat wie andere NoSQL-Datenspeicher unterschiedliche Anforderungen, je nachdem, was Sie tun werden.

Redis verfügt über mehrere Datenstrukturen, die je nach Bedarf nützlich sein könnten. Zum Beispiel, wenn Sie einen select * from student where name = 'xxx' wünschen Sie könnten einen Redis hash verwenden .

redis 127.0.0.1:6379> hmset student:xxx id 1 college nnn address xn
OK
redis 127.0.0.1:6379> hgetall student:xxx
1) "id"
2) "1"
3) "college"
4) "nnn"
5) "address"
6) "xn"

Wenn Sie jedoch andere Abfragen haben, möchten Sie dasselbe tun, aber wählen Sie where college = 'nnn' aus dann müssen Sie Ihre Daten denormalisieren. Denormalisierung ist normalerweise eine schlechte Sache in SQL, aber in NoSQL ist sie sehr verbreitet.

Wenn Ihre primäre Abfrage gegen den Namen gerichtet ist, Sie aber möglicherweise eine Abfrage gegen das College durchführen müssen, können Sie so etwas wie das Hinzufügen eines set tun zusätzlich zu den Hashes.

redis 127.0.0.1:6379> sadd college:nnn student:xxx
(integer) 1
redis 127.0.0.1:6379> smembers college:nnn
1) "student:xxx"

Wenn Sie mit Ihren so strukturierten Daten alle Informationen für Namen finden möchten, die auf die Hochschule xn gehen, würden Sie zuerst den set auswählen , und wählen Sie dann jeden hash aus basierend auf dem im set zurückgegebenen Namen .

Ihre Anforderungen bestimmen im Allgemeinen das Design und die von Ihnen verwendeten Strukturen.