文档章节

PHP 使用memcache 做session缓存

程序兵
 程序兵
发布于 2016/10/31 09:11
字数 432
阅读 31
收藏 0

        PHP使用memcache做session缓存,就是修改PHP session的缓存方式,session默认使用的是文件缓存, 也就是可以直接用 memcache 来作 PHP 的 session.save_handler。

         1. 安装 memcached,还是那套 ./configure; make; make install,注意 memcached 用 libevent 来作事件驱动,所以要先安装有 libevent。

         2. 安装 pecl::memcache,用 pecl 命令行工具安装: pecl install memcache 或直接从源码安装: phpize ./configure make make install 将 php.ini 中 extension=memcache.so 打开,重启一下 apache,查看 phpinfo 中的 "Registered save handlers" 会有 "files user memcache" 这3个可用。

        3. 修改配置文件,在 php.ini 中全局设置: session.save_handler = memcache session.save_path = "tcp://127.0.0.1:11211" 或者某个目录下的 .htaccess : php_value session.save_handler "memcache" php_value session.save_path "tcp://127.0.0.1:11211" 再或者在某个一个应用中: ini_set("session.save_handler", "memcache"); ini_set("session.save_path", "tcp://127.0.0.1:11211"); 使用多个 memcached server 时用逗号","隔开,并且和 Memcache::addServer() 文档中说明的一样,可以带额外的参数"persistent"、"weight"、"timeout"、"retry_interval" 等等,类似这样的:"tcp://host1:port1?persistent=1&weight=2,tcp://host2:port2" 。

        4. 启动 memcached: memcached -d -l 127.0.0.1 -p 11212 -m 128 5. 在程序中使用 memcache 来作 session 存储,用例子测试一下: 

<?php

        print $_SESSION['TEST3'];

        print session_id();

?>

        6. 用 sessionid 去 memcached 里查询一下:get('19216821213c65cedec65b0883238c278eeb573e077'));  会有看到 string(37) "TEST|i:1177556731;TEST3|i:1177556881;" 这样的输出,证明 session 正常工作。 用 memcache 来存储 session 在读写速度上会比 files 时快很多,而且在多个服务器需要共用 session 时会比较方便,将这些服务器都配置成使用同一组 memcached 服务器就可以,减少了额外的工作量。缺点是 session 数据都保存在 memory 中,持久化方面有所欠缺,但对 session 数据来说也不是很大的问题。

© 著作权归作者所有

程序兵
粉丝 3
博文 35
码字总数 13902
作品 0
厦门
程序员
私信 提问
图文并茂超详细搭建memcache缓存服务器(nginx+php+memcache+mysql)

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 一、MemCache简述 session MemCache是一个自由、源码开放、高性能...

南北二斗
2017/05/26
0
0
LAMP架构升级版--LNMMP

简介 LNMMP=Linux+Nginx+MySQL+Memcache+PHP; 利用Nginx的高性能特点做前端反向代理服务器,分发用户请求,并在能够利用缓存的地方使用Memcache缓存服务,以加速缓存效率,具体架构图如下;...

xxrenzhe11
2014/04/27
0
0
Memcache缓存服务器(Nginx+php+Memcache+MySQL)

一、MemCache简介: MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从...

何小帅
2017/03/24
0
0
Memcache 笔记

自己以前笔记,和大家分享 一、Memcache概述 出现的原因:随着数据量的增大,访问的集中,使得数据库服务器的负担加重,数据库响应恶化,网站显示延迟等 memcache:是高性能的分布式内存缓存服务器....

云栖希望。
2017/12/04
0
0
lnmp 加缓存 以及动态页面.jsp的实现

缓存:cache:nosql >memcache > radis > moglodb memcache:(nosql 工作在内存 不往磁盘上写东西 数据不会持久化 对硬件要求小(这种nosql(键值) 适用于微博等计数运用多的地方不是关系型数据库...

当当要加油
2017/03/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Netty整合Protobuffer

现在我们都知道,rpc的三要素:IO模型,线程模型,然后就是数据交互模型,即我们说的序列化和反序列化,现在我们来看一下压缩比率最大的二进制序列化方式——Protobuffer,而且该方式是可以跨...

算法之名
9分钟前
5
0
如何用C++实现栈

栈的定义 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压...

BWH_Steven
27分钟前
3
0
编程作业20190210900169

1编写一个程序,提示用户输入名和姓,然后以“名,姓”的格式打印出来。 #include <stdio.h>#include <stdlib.h> int main(){ char firstName[20]; char lastName[20]; print......

1李嘉焘1
39分钟前
6
0
补码的优点及原理分析

只讨论整数 1.计算机内部为什么没有减法器? 减法运算本身其实就是加法,如x - y即x +(-y),所以只需要将负数成功表示出来并可以参加加法运算,那加法器就可同时实现“+”和“-”的运算。这...

清自以敬
55分钟前
72
0
Docker 可视化管理 portainer

官网安装指南: https://portainer.readthedocs.io/en/latest/deployment.html docker-compose.yml 位置,下载地址:https://downloads.portainer.io/docker-compose.yml...

Moks角木
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部