默认情况下,PHP将session存放到当前服务器/tmp目录下,一个session一个文件,全部以sess_前缀开始。随着session文件的增加出现性能问题,并且不利于项目的扩展:session不共享,导致session丢失。
为了解决这个问题,我们可以将session统一存放到redis、memchache这些nosql中。文章源自运维生存时间-https://www.ttlsa.com/php/how-to-store-php-sessions-in-nosql/
安装redis、memchache
TTLSA已经有相关文章,请前往《redis安装配置 – ttlsa教程系列之redis》、《memcached使用详解》文章源自运维生存时间-https://www.ttlsa.com/php/how-to-store-php-sessions-in-nosql/
安装php扩展
最简单的方法,使用pecl,或者自行下载源码安装。文章源自运维生存时间-https://www.ttlsa.com/php/how-to-store-php-sessions-in-nosql/
安装redis扩展文章源自运维生存时间-https://www.ttlsa.com/php/how-to-store-php-sessions-in-nosql/
# pecl install redis
安装memchache扩展文章源自运维生存时间-https://www.ttlsa.com/php/how-to-store-php-sessions-in-nosql/
# pecl install memchache
配置PHP session
session.save_handler = redis session.save_path = "tcp://127.0.0.1:12100"
或者文章源自运维生存时间-https://www.ttlsa.com/php/how-to-store-php-sessions-in-nosql/
session.save_handler = redis session.save_path = "tcp://127.0.0.1:6379"
多个redis/memchache文章源自运维生存时间-https://www.ttlsa.com/php/how-to-store-php-sessions-in-nosql/
session.save_path = "tcp://127.0.0.1:6379,tcp://s01.nosql.ttlsa.com:6380"
文章源自运维生存时间-https://www.ttlsa.com/php/how-to-store-php-sessions-in-nosql/ 文章源自运维生存时间-https://www.ttlsa.com/php/how-to-store-php-sessions-in-nosql/
1F
session 会丢失吗?如果前端用Nginx去反向代理 那使用memcache 会丢失session 记得