세션: 컴퓨터, 특히 네트워크 애플리케이션에서는 이를 "세션 제어"라고 합니다. 그래서 이번 글에서는 Redis에 세션을 저장하는 방법을 알려드리겠습니다. 필요하신 분들은 서둘러서 배워보세요.
PHP의 세션은 기본적으로 php.ini 구성 파일에 설정된 세션 캐시 디렉터리에 파일로 저장됩니다. 각 사용자가 로그인할 때마다 고유한 session_id 파일이 생성됩니다. , 사용자 로그인 수가 수십만 개에 도달하면 서버에 수십만 개의 파일이 생성됩니다. 이때 디스크의 세션 디렉터리에 대한 IO 읽기 및 쓰기 속도가 매우 느려집니다. 사용자가 로그인할 때 많은 시간을 소비하는 프로그램. 세션 파일 읽기 및 쓰기에 대해. 많은 수의 사용자가 로그인하면 읽기 및 쓰기 기능이 부족하여 세션을 운영하는 첫 번째 프로세스에 의해 파일이 잠기고 다른 요청이 차단됩니다. 세션 파일이 잠금 해제될 때까지 요청은 session_start()에서 일시 중지됩니다. 이때 로그인 속도 저하 문제를 최적화할 필요가 있습니다.
잠긴 세션 파일은 스크립트 실행이 끝나거나 세션이 정상적으로 닫힐 때까지 잠금이 해제되지 않으므로, 대량의 PHP 요청($_SESSION 데이터 사용이 필요함)이 잠기는 것을 방지하기 위해 다음과 같이 할 수 있습니다. 세션을 작성한 후 즉시 세션을 닫아 잠금을 해제합니다.
//开启会话 session_start(); //写入会话 $_SESSION['is_login']=1; //写入会话后关闭上一个会话文件的写入 session_write_close();
php 세션 세션은 redis에 기록됩니다.
redis 데이터는 컴퓨터 메모리 스틱에 저장되고 실행됩니다. 컴퓨터 메모리 스틱의 속도는 하드 디스크의 수십 배이므로 PHP 세션이 redis 캐시를 사용하면 속도가 많이 향상됩니다. 구성 방법:
//方式一,在php脚本中设置更改php会话写入方式 <?php ini_set("session.save_handler","redis"); ini_set("session.save_path","tcp://127.0.0.1:6379"); //如果有密码 ini_set("session.save_path","tcp://127.0.0.1:6379?auth=password"); ?>
//修改php的配置文件php.ini session.save_handler = redis session.save_path = "tcp://127.0.0.1:6379" //如果有密码 session.save_path = "tcp://127.0.0.1:6379?auth=password"
관련 권장 사항:
위 내용은 Redis에 PHP 세션을 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!