1. 程式人生 > >php session儲存到檔案、memcache或redis

php session儲存到檔案、memcache或redis

儲存在檔案

修改php.ini
session.save_handler = files
session.save_path = “/home/logs/session”

或者在php程式碼中
ini_set(“session.save_handler”, “files”);
ini_set(“session.save_path”, “/home/logs/session″);

儲存在memcache

修改php.ini
session.save_handler = “memcache”
memcache.hash_strategy = “consistent” // 設定memcache的hash演算法
session.save_path = “tcp://localhost:11211” // 設定session儲存的位置,多臺memcache用逗號隔開,比如”tcp://localhost:11211?weight=30,tcp://localhost:12000”

或者在php程式碼中
ini_set(“session.save_handler”, “memcache”);
ini_set(“session.save_path”, “tcp://127.0.0.1:11211″);

儲存在redis

session.save_handler = redis
session.save_path = “tcp://localhost:6379”

或者在php程式碼中
ini_set(“session.save_handler”, “redis”);
ini_set(“session.save_path”, “tcp://localhost:6379″);

如果在redis配置中設定了連線密碼requirepass,save_path設為”tcp://localhost:6379?auth=pwd”

// 測試程式碼
session_start();
$_SESSION['sessionid'] = 'session content';
echo $_SESSION['sessionid'];  echo '<br/>';

$redis = new Redis();
$redis->connect("127.0.0.1","6379");
//redis用session_id作為key並且是以string的形式儲存
echo 'session_id:'
. session_id(); echo '<br>'; echo $redis->get('PHPREDIS_SESSION:' . session_id()); 輸出 session content session_id:jd7qn0c4lnn39fs3p9gt1fjve0 sessionid|s:15:"session content";

最後,別忘了重啟php-fpm和nginx
/etc/init.d/php-fpm restart
/usr/nginx/sbin/nginx -s reload