PHP 中 Session 存儲(chǔ)在文件中,對(duì)于一般需求來(lái)講沒(méi)什么問(wèn)題,但是對(duì)于高并發(fā)、分布式集群架構(gòu)的項(xiàng)目來(lái)講,會(huì)有 性能和Session 共享 的問(wèn)題。
解決方案:配置 Session 存儲(chǔ)在 NOSQL 中,如 redis 等
Reids 存儲(chǔ)
創(chuàng)新互聯(lián)公司專業(yè)成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),集網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營(yíng)銷、軟文營(yíng)銷等專業(yè)人才根據(jù)搜索規(guī)律編程設(shè)計(jì),讓網(wǎng)站在運(yùn)行后,在搜索中有好的表現(xiàn),專業(yè)設(shè)計(jì)制作為您帶來(lái)效益的網(wǎng)站!讓網(wǎng)站建設(shè)為您創(chuàng)造效益。
方法1:php.ini 配置 session.save_handler = redis session.save_path = "tcp://127.0.0.1:6379" 重啟 php-fpm 方法2:腳本中 ini_set() 配置
ini_set("session.save_handler", "redis");
ini_set("session.save_path", "tcp://127.0.0.1:6379");
Redis 如果配置了密碼,/etc/redis.conf 中的 requirepass ,session 存儲(chǔ)時(shí)會(huì)報(bào)錯(cuò)
方案:session.save_path = "tcp://127.0.0.1:6379?auth=authpass"
從Redis 中讀取session
key = "PHPREDIS_SESSION:".session_id() ; // session_id() 拼接前綴 PHPREDIS_SESSION,并以字符串形式存儲(chǔ)
測(cè)試代碼
';
$redis = new redis();
$redis->connect('127.0.0.1', 6379);
// redis 用 session_id 作為 key 并且是以 string 的形式存儲(chǔ)
echo $redis->get('PHPREDIS_SESSION:' . session_id());