PHP Redis は、一般的なキーと値のストレージ データベースであり、キャッシュやデータ ストレージによく使用されます。文字列、ハッシュ、リスト、セット、ソートされたセットなど、さまざまなデータ構造をサポートします。 PHP Redis を使用してデータを保存する場合、連想配列や多次元配列などの配列型データに遭遇することがよくあります。では、PHP Redis は配列の保存をサポートしていますか?
答えは「はい」です。 PHP Redis は配列オブジェクトの保存をサポートしていますが、配列は保存する前に文字列にシリアル化する必要があります。 PHP には、serialize() や json_encode() など、配列を文字列にシリアル化するための組み込み関数がいくつか用意されています。このうち、serialize() 関数はオブジェクトを文字列にシリアル化し、json_encode() 関数は PHP 変数 (配列、オブジェクト) を JSON 形式の文字列にエンコードします。どちらの関数も配列を文字列に変換できますが、その方法は異なります。したがって、配列をシリアル化する方法を選択するときは、独自のニーズに基づいて決定する必要があります。
PHP Redis を使用して配列を保存する場合は、通常、次の手順が必要です。
serialize() を使用するまたは json_encode() 関数は配列を文字列にシリアル化します。
// 关联数组 $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);
Redis の set() 関数を使用して、文字列を Redis に保存します。ストレージ アレイの名前として適切なキーを選択できます。
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); // 存储关联数组 $redis->set('person', serialize($arr)); // 存储多维数组 $redis->set('person_list', json_encode($arr));
Redis の get() 関数を使用して、Redis から保存された文字列を取得し、unserialize( ) または json_decode() 関数はそれを配列に逆シリアル化します。
$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);
json_decode() 関数を使用する場合、2 番目のパラメーターを true に設定する必要があることに注意してください。これは、オブジェクトの代わりに配列が返されることを意味します。これにより、取得されたデータが正しい形式であることが保証されます。
要約すると、PHP Redis は配列を保存できますが、配列は保存する前に文字列にシリアル化する必要があります。 Redis を使用して配列を保存するプロセスは次のとおりです: 配列を文字列にシリアル化します -> 文字列を Redis に保存します -> Redis から文字列を取得し、それを配列に逆シリアル化します。配列をシリアル化するときは、serialize() 関数または json_encode() 関数を使用できます。配列を逆シリアル化するときは、unserialize() 関数または json_decode() 関数を使用できますが、2 番目のパラメーターを true に設定することに注意する必要があります。
以上がPHP Redisは配列を保存しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。