Heim > Backend-Entwicklung > PHP-Problem > Speichert PHP Redis Arrays?

Speichert PHP Redis Arrays?

PHPz
Freigeben: 2023-04-26 09:38:16
Original
1191 Leute haben es durchsucht

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:

  1. Serialisieren Sie das Array in einen String.

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);
Nach dem Login kopieren
  1. Strings in Redis speichern

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));
Nach dem Login kopieren
  1. Holen Sie sich die Zeichenfolge von Redis und deserialisieren Sie sie in ein Array.

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);
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage