3. Hash-Hash-Typ
Einführung
Hash-Hash ähnelt einer kleinen Redis-Datenbank
Ein Hash kann mehrere Schlüssel-Wert-Paare enthalten
Jeder Schlüssel des Hashs kann nicht wiederholt werden, ist unterschiedlich und ungeordnet angeordnet
Der Wert kann eine Zeichenfolge oder ein numerischer Wert sein
Bei numerischen Werten kann die automatische Inkrementierung erfolgen ausgeführt werden Oder Dekrementierungsvorgang
Hash-Struktur
In der folgenden Struktur stellt user den Schlüsselnamen dar, der mehrere verschiedene Schlüssel-Wert-Paare enthalten kann
[ "user":[ "name1":"yanying1", "name2":"yanying2", "name3":"yanying3" ] ]
Operationsmethode
Demo (Befehlszeilen-PHP-Demo)
Befehlszeile:
Zuerst fügen wir dem Hash ein Schlüssel-Wert-Paar hinzu. Bei Erfolg geben Sie 1 zurück. Wenn der Schlüssel bereits vorhanden ist, geben Sie 0 zurück.
hset hash-key sub-key1 value1 // 返回 1
Wir fügen ein weiteres Schlüssel-Wert-Paar hinzu, das nicht existiert.
hset hash-key sub-key2 value2 // 返回 1
Zu diesem Zeitpunkt ist der Schlüssel bereits vorhanden existiert im Hash sub-key1 und sub-key2, als nächstes fügen wir den gleichen Schlüssel sub-key1 zum Hash hinzu und sehen, was passiert:
hset hash-key sub-key1 value1 // 返回 0,由于该键已经存在
Als nächstes erhalten wir einen bestimmten Schlüssel sub durch hget -Der Wert von Schlüssel1.
hget hash-key sub-key1 // "value1"
Wert erfolgreich erhalten. Lassen Sie uns alle hinzugefügten Elemente abrufen, um zu sehen, welche Werte
hgetall hash-key
gerade hinzugefügt wurden. Die Ergebnisse sind wie folgt. Wir haben herausgefunden, dass das erste Ergebnis der Schlüssel des ersten Schlüssel-Wert-Paares ist, das zweite Ergebnis der Wert des Schlüssel-Wert-Paares und so weiter, wobei jeweils zwei eine Gruppe darstellen.
"sub-key1""value1""sub-key2""value2"
Versuchen wir, einen Schlüssel zu löschen. Wir werden feststellen, dass beim Löschen 1 zurückgegeben wird, wenn der Schlüssel zuvor im Hash vorhanden war, andernfalls wird 0 zurückgegeben
hdel hash-key sub-key1 // 该键之前存在于散列,返回1
Wir versuchen erneut, Unterschlüssel1 zu löschen und stellen fest, dass das Ergebnis beim Löschen eines nicht vorhandenen Schlüssels 0 ist
hdel hash-key sub-key1
Wir rufen alle Schlüssel-Wert-Paare erneut ab, um zu sehen, was übrig bleibt.
hgetall hash-key
Das Ergebnis ist, dass es zwei Ergebnisse weniger gibt. Immerhin wurde gerade ein Schlüssel-Wert-Paar gelöscht
"sub-key1""value1"
PHP-Versionsdemonstration
Schritt Erstens, Redis-Datenbank verknüpfen
$redis = new Redis();$redis->connect('127.0.0.1', 6379);
Wir fügen zunächst ein Schlüssel-Wert-Paar in den Hash-Schlüssel-Hash ein. 1 bedeutet, dass das Einfügen erfolgreich war; 0 Element bedeutet, dass es bereits vorhanden ist
$redis->hset('hash-key','sub-key1','value1'); // int 1,元素插入成功,之前不存在该键
Wir fügen das gleiche Schlüssel-Wert-Paar erneut ein
$redis->hset('hash-key','sub-key1','value1'); // int 0,元素插入失败,该键已经存在
Für die folgende Demonstration fügen wir weiterhin einige ein andere Werte
$redis->hset('hash-key','sub-key2','value2'); // int 0
Als nächstes verwenden wir hget, um den dem Schlüssel entsprechenden Wert zu erhalten. Versuchen wir, den Wert von Unterschlüssel2 zu ermitteln.
$redis->hget('hash-key','sub-key2'); // 'value2'
Nachdem wir einen erhalten haben, versuchen wir, mit hgetall alle gerade eingefügten Werte abzurufen, um zu sehen, welche Schlüssel-Wert-Paare enthalten sind
$redis->hgetall('hash-key');
Das Ergebnis ist ein vollständiges Schlüssel-Wert-Array
array (size=2) 'sub-key1' => string 'value1' (length=6) 'sub-key2' => string 'value2' (length=6)
Nachdem wir alle Schlüssel-Wert-Paare angezeigt haben, versuchen wir, einen der Schlüssel zu löschen. Wenn der Schlüssel zuvor im Hash vorhanden ist, wird 1 zurückgegeben. Andernfalls wird 0 zurückgegeben. Fehler
$redis->hdel('hash-key','sub-key1'); // 该键之前存在,返回int 1
Als nächstes verwenden wir hgetall, um alle im Hash verbleibenden Schlüssel-Wert-Paare zu überprüfen
und stellen Sie fest, dass nur ein Array zurückgegeben wird, das ein Schlüssel-Wert-Paar enthält.$redis->hdel('hash-key','sub-key1'); // 该键不存在,返回int 0
$redis->hgetall('hash-key');
array (size=1) 'sub-key2' => string 'value2' (length=6)