程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 采用memcache在web集群中實現session的同步會話

采用memcache在web集群中實現session的同步會話

編輯:關於PHP編程

使用memcache來同步session是還是不錯的,當然也可以通過redis來保存session,可以php開啟並將Session存儲到Redis緩存,下面是設置利用memcache在web集群中同步會話session的實現過程:

1、模擬web集群

我啟動了二個memcached進程,分別模擬二台服務器

/usr/local/bin/memcached -d -m 20 -u zhangy -p 12000 -P ./memcached.pid
/usr/local/bin/memcached -d -m 20 -u zhangy -p 13000 -P ./mem.pid

2、修改php的配置

vi /usr/local/php/lib/php.ini

session.save_handler = "memcache"
memcache.hash_strategy = "consistent"
session.save_path = "tcp://127.0.0.1:13000?weight=10,tcp://127.0.0.1:12000"

說明:第一行,session的儲存方式是memcache;第二行,memcache的hash算法是consistent;第三行,session儲存的地位;

3、重啟apache

查看phpinfo

session

Session Support enabled Registered save handlers files user sqlite memcache Registered serializer handlers php php_binary

緊接著下面是:

session.save_path tcp://127.0.0.1:13000,tcp://127.0.0.1:12000 tcp://127.0.0.1:13000,tcp://127.0.0.1:12000

4、做個簡單測試如下:

a)、准備文件session.php

<?php 
session_start(); 
$_SESSION['username'] = "abcabc"; 
echo session_id(); 
?>

b)、顯示session內容文件

<?php 
$mem = new Memcache; 
$mem->addServer("127.0.0.1",12000)or die ("Could not add server 12000"); 
$mem->addServer("127.0.0.1",13000)or die ("Could not add server 13000"); 
$val = $mem->get('qp0mrob2ovcqle3u4lbr4obsa5'); 
//echo session_id(); 得到的session id
echo $val; 
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved