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() 함수를 사용할 때 두 번째 매개변수를 true로 설정해야 하는데, 이는 객체 대신 배열이 반환된다는 의미입니다. 이렇게 하면 얻은 데이터가 올바른 형식인지 확인할 수 있습니다.
요약하자면, PHP Redis는 배열을 저장할 수 있지만 저장하기 전에 문자열로 직렬화해야 합니다. Redis를 사용하여 배열을 저장하는 프로세스는 다음과 같습니다. 배열을 문자열로 직렬화 -> Redis에 문자열 저장 -> Redis에서 문자열을 가져와 배열로 역직렬화합니다. 배열을 직렬화할 때 serialize() 또는 json_encode() 함수를 사용할 수 있습니다. 배열을 역직렬화할 때 unserialize() 또는 json_decode() 함수를 사용할 수 있습니다. 두 번째 매개변수를 true로 설정해야 합니다.
위 내용은 PHP Redis는 배열을 저장합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!