>백엔드 개발 >PHP 튜토리얼 >Redis에 PHP 세션을 작성하는 방법

Redis에 PHP 세션을 작성하는 방법

小云云
小云云원래의
2018-01-25 14:37:412165검색

세션: 컴퓨터, 특히 네트워크 애플리케이션에서는 이를 "세션 제어"라고 합니다. 그래서 이번 글에서는 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"

관련 권장 사항:

php에서 세션을 등록하고 읽는 방법

위 내용은 Redis에 PHP 세션을 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.