PHP Redis ist eine beliebte Schlüsselwertspeicherdatenbank, die häufig zum Caching und zur Datenspeicherung verwendet wird. Es unterstützt eine Vielzahl von Datenstrukturen, einschließlich Zeichenfolgen, Hashes, Listen, Mengen und sortierten Mengen. Wenn wir PHP Redis zum Speichern von Daten verwenden, stoßen wir häufig auf Daten vom Typ Array, z. B. assoziative Arrays und mehrdimensionale Arrays. Unterstützt PHP Redis also das Speichern von Arrays?
Die Antwort ist ja. PHP Redis unterstützt das Speichern von Array-Objekten, das Array muss jedoch in einen String serialisiert werden, bevor es gespeichert werden kann. PHP bietet einige integrierte Funktionen zum Serialisieren von Arrays in Strings, wie zum Beispiel serialize() und json_encode(). Darunter serialisiert die Funktion serialize() ein Objekt in einen String und json_encode() codiert eine PHP-Variable (Array, Objekt) in einen String im JSON-Format. Obwohl beide Funktionen ein Array in einen String konvertieren können, tun sie dies auf unterschiedliche Weise. Daher müssen Sie bei der Auswahl der Art der Serialisierung eines Arrays Ihre eigene Entscheidung berücksichtigen.
Wenn Sie PHP Redis zum Speichern eines Arrays verwenden, sind im Allgemeinen die folgenden Schritte erforderlich:
Verwenden Sie die Funktion serialize() oder json_encode(), um das Array in einen String zu serialisieren.
// 关联数组 $arr = array('name' => 'John', 'age' => 28); $str = serialize($arr); // 多维数组 $arr = array( 'person1' => array('name' => 'John', 'age' => 28), 'person2' => array('name' => 'Tom', 'age' => 30) ); $str = json_encode($arr);
Verwenden Sie die set()-Funktion von Redis, um Strings in Redis zu speichern. Als Name des Speicher-Arrays können Sie einen passenden Schlüssel wählen.
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); // 存储关联数组 $redis->set('person', serialize($arr)); // 存储多维数组 $redis->set('person_list', json_encode($arr));
Verwenden Sie die Redis-Funktion get(), um die gespeicherte Zeichenfolge von Redis abzurufen, und verwenden Sie die Funktion unserialize() oder json_decode(), um sie in ein Array zu deserialisieren .
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); // 获取关联数组 $str = $redis->get('person'); $arr = unserialize($str); // 获取多维数组 $str = $redis->get('person_list'); $arr = json_decode($str, true);
Es ist zu beachten, dass bei Verwendung der Funktion json_decode() der zweite Parameter auf true gesetzt werden muss, was bedeutet, dass ein Array anstelle eines Objekts zurückgegeben wird. Dadurch wird sichergestellt, dass die erhaltenen Daten im richtigen Format vorliegen.
Zusammenfassend lässt sich sagen, dass PHP Redis Arrays speichern kann, es muss jedoch vor der Speicherung in Strings serialisiert werden. Der Prozess der Verwendung von Redis zum Speichern eines Arrays ist: Serialisieren des Arrays in einen String –> Speichern des Strings in Redis –> Abrufen des Strings von Redis und Deserialisieren in ein Array. Beim Serialisieren eines Arrays können Sie die Funktion serialize() oder json_encode() verwenden. Beim Deserialisieren eines Arrays können Sie die Funktion unserialize() oder json_decode() verwenden. Sie müssen darauf achten, den zweiten Parameter auf true zu setzen.
Das obige ist der detaillierte Inhalt vonSpeichert PHP Redis Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!