找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 571|回复: 0
打印 上一主题 下一主题

PHP中使用memcache存储session的三种配置方法

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 05:59:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            
1、直接修改php.ini配置文件
[U]复制代码[/U] 代码如下:
session.save_handler = memcache //设置session的储存方式为memcache
memcache.hash_strategy = "consistent"//设置memcache的hash算法
session.save_path = "tcp://127.0.0.100:11211" //设置session储存的位置,多台memcache用逗号隔开,例如:tcp://127.0.0.1:11211,tcp://127.0.0.1:12000

2、利用目录下的 .htaccess 文件配置
[U]复制代码[/U] 代码如下:
php_value session.save_handler "memcache"
php_value session.save_path "tcp://127.0.0.1:11211"

说明:这个只是针对Apache的,目前使用Nginx的比较多,也不推荐此方式。
3、在项目的PHP文件中修改配置
[U]复制代码[/U] 代码如下:ini_set("session.save_handler", "memcache");
ini_set("session.save_path", "tcp://127.0.0.100:11211");
4、测试例子
[U]复制代码[/U] 代码如下:
//测试session读取是否正常
session_start();
$_SESSION['username'] = "jb51.net";
echo session_id();
//从Memcache中读取session
$m = new Memcache();
$m->connect('localhost', 11211);
//或者这样
//$mem->addServer("127.0.0.1", 11211) or die ("Can't add Memcache server 127.0.0.1:12000");
//根据session_id获取数据
//本机
//$session = $m->get(session_id()); //session_id:d527b6f983bd5e941f9fff318a31206b
//另一台服务器,已知session id
$session = $m->get("d527b6f983bd5e941f9fff318a31206b");
echo $session."
"; //会得到这样的数据:username|s:16:"pandao";,解析一下就可以得到相应的值了
echo session_id()."
";
exit;

上面只是一些简单的说明,其实说点题外话,一般来说,做分布式,那肯定是有服务器权限的,所以推荐第一种。
            
            
您可能感兴趣的文章:
  • 利用Memcached在php下实现session机制 替换PHP的原生session支持
  • 基于php使用memcache存储session的详解
  • php将session放入memcached的设置方法
  • 在php中设置session用memcache来存储的方法总结
  • PHP保存session到memcache服务器的方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端