`
bardo
  • 浏览: 378236 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
D1407912-ab64-3e76-ae37-b31aa4afa398
浅述PHP设计模式
浏览量:11805
9d6df9f7-91da-3787-a37c-0e826525dd5d
Zend Framewor...
浏览量:10112
85b628bd-a2ed-3de2-a4b1-0d34985ae8b6
PHP的IDE(集成开发环...
浏览量:9501
社区版块
存档分类
最新评论

PHP memcached的Session的使用与配置

    博客分类:
  • PHP
阅读更多

http://bardo.iteye.com/blog/914110这篇文章中,我们已讲了 PHP memcached 的安装方法。 PHP memcached的Session的使用,有哪些问题,这里简述一下:

memcached的session,第一大优点是比PHP session要高效,快速。其次是可以方便实现多主机session共享
使用以下方式使用memcached的session:
单一站点的服务器,可以在php.ini中使用:
session.save_handler "memcached"
session.save_path  "host1:11211,host2:11211"
 session.save_path 中的参数必须是逗号分隔的主机名加端口。主机名也可以使用IP地址。
虽然,服务端都是memcached,但不同于memcache扩展,它不需要在save_path中指定通讯协议
如果服务器有多主机,你要给你当前的虚拟主机配置,则可以配置到.htaccess文件中。格式如下:
php_value session.save_handler "memcached"
php_value session.save_path  "host1:11211,host2:11211"
 注意事项:此时,php.ini中的 session.use_cookies的值必须是1。如果系统中此值不是1,那么在

.htaccess文件中要增加:
php_value session.use_cookies = 1
 如果.heaccess报错,可以参考下面的例子进行修改:
# PHP 4, Apache 1.
<IfModule mod_php4.c>
  php_value session.save_handler "memcached"
</IfModule>
# PHP 4, Apache 2.
<IfModule sapi_apache2.c>
  php_value session.save_handler "memcached"
</IfModule>
# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
  php_value session.save_handler "memcached"
</IfModule>
 .htaccess可以控制到目录级别。而同时,还有可以直接在php代码中控制的方式:
ini_set("session.save_handler", "memcached");
ini_set("session.save_path", "host1:11211,host2:11211");
然而,这也要看你PHP的运行模式,如果是 mod_php方式, .htaccess是可以修改的, 但是如果你安装的是
fast_cgi,那么,你需要php_fpm来管理不同的php.ini。如果是mod_fcgid,那么,就要用FcgidInitialEnv

PHPRC "/dirOfPhiIni" 来设置不同的php.ini,但是,FcgidInitialEnv是新版本的中的命令。老板本的则是

DefaultInitEnv。有些版本有BUG,不一定能设置成功。而对于suPHP,则也需要在其配置中指定不同的配置

目录。

以下是 mod_fcgid 的一个配置实例:

#httpd.conf

LoadModule php5_module /php/php5apache2_2.dll
LoadModule fcgid_module modules/mod_fcgid.so
PHPIniDir /php

<IfModule fcgid_module>
# whatever directives wanted bla bla bla
# Use same php.ini as mod_php globally for mod_fcgid
FcgidInitialEnv PHPRC "/php"
</IfModule>


#httpd-vhost.conf

#using mod_php and /php/php.ini
<VirtualHost *:80>
    ServerName php.example.com
    DocumentRoot "/home/htdocs"
</VirtualHost>

#using mod_fcgid and /home/user1/php.ini
<VirtualHost *:80>
    ServerName user1.example.com
    DocumentRoot "/home/user1/htdocs"
      FcgidInitialEnv PHPRC "/home/user1"
      AddHandler fcgid-script .php
      FcgidWrapper "/php/php-cgi.exe" .php
</VirtualHost>

#using mod_fcgid and /home/user2/php.ini
<VirtualHost *:80>
    ServerName user2.example.com
    DocumentRoot "/home/user2/htdocs"
      FcgidInitialEnv PHPRC "/home/user2"
      AddHandler fcgid-script .php
      FcgidWrapper "/php/php-cgi.exe" .php
</VirtualHost>

#using mod_fcgid and global php.ini
<VirtualHost *:80>
    ServerName user3.example.com
    DocumentRoot "/home/user3/htdocs"
      AddHandler fcgid-script .php
      FcgidWrapper "/php/php-cgi.exe" .php
</VirtualHost>  
如果这些所有针对站点设置的都行不通,那你只能够使用代码的方法区别对待了。
代码中使用,一种可以直接调用ini_set, 还有一种,就是用 memcached自己写一个 session类,然后,映身

session函数到你写的session类中,这一点网上也是有例子的,所以,也不用多讲了。

2
3
分享到:
评论

相关推荐

    memcached使用小结(PHP).docx

    1. 在 PHP 中使用 Memcached 存储 Session,需要在每个页面的开头使用 session_start() 函数。 2. 设置 Session 变量:$_SESSION['TEST'] = time; $_SESSION['TEST3'] = time;。 3. 使用 Memcached 读取 Session:$...

    6.4: Session与Cookie 、 部署memcached 、 Session共享 、 .docx

    总结,理解Session与Cookie的区别、部署Memcached实现Session共享,以及如何在Linux环境中配置LNMP服务器是Web开发和运维中的重要技能。在实际应用中,需要根据业务需求选择合适的技术,并优化配置,确保系统的稳定...

    php将session放入memcached的设置方法

    此外,文章还提到了其他相关主题,如PHP负载均衡、Nginx配置、Memcache的安装和使用,以及在不同场景下如何配置和使用Memcached存储session,这些都是在构建高效、可扩展的PHP应用时需要考虑的重要方面。使用...

    memcached服务器端memcached.exe 下载

    使用时,需要将`memcached.exe`放到一个合适的目录并启动,然后在PHP配置文件(`php.ini`)中添加对`php_memcached.dll`的引用,重启PHP服务,就可以在PHP脚本中调用memcached的相关函数进行缓存操作了。 memcached...

    memcached中文学习文档

    #### 二、Memcached安装与配置 ##### 2.1 安装Memcached服务 1. **编译安装**: - 执行`./configure`进行配置。 - `make`编译源码。 - `make install`安装服务。 由于Memcached使用libevent作为其事件驱动库,...

    memcached扩展php5.3.8

    2. **memcached扩展**:PHP的memcached扩展允许PHP应用程序与memcached服务器通信,实现数据的快速存取。它提供了接口,使得开发者可以方便地将数据缓存在内存中,提高Web应用的响应时间。 3. **PHP 5.3.8**:这是...

    PHP实现多服务器session共享之memcache共享.rar

    总的来说,"PHP实现多服务器session共享之memcache共享"这个主题涵盖的知识点包括:session管理、分布式存储、memcache的使用、PHP配置、并发控制以及系统扩展性设计。掌握这些知识对于构建高可用、可扩展的Web应用...

    在win系统安装配置 Memcached for PHP 5.3 图文教程_.docx

    在Windows系统上配置PHP 5.3与Memcached的集成是一项常见的任务,尤其对于那些希望提升Web应用程序性能的开发者来说。Memcached是一款高效、轻量级的分布式内存对象缓存系统,它可以存储各种类型的数据,如图像、...

    企业级memcached部署(session共享)1

    通过以上步骤,我们完成了企业级Memcached服务端的部署和客户端的配置,实现了session数据的共享存储。在实际应用中,可以根据需要调整内存大小、并发连接数等参数,以及根据网络环境配置多个实例,以实现负载均衡和...

    PHP基于memcahe的session方法重写

    为了解决这个问题,我们可以利用memcache(或其升级版memcached)来实现session的存储和共享,从而达到session跨服务器跨域的目的。本文将详细介绍如何基于memcache实现PHP的session方法重写。 首先,memcache是一...

    Memcached-1.2.6

    4. **安装与配置Memcached-1.2.6-win32-bin** 对于Windows环境,下载并解压`memcached-1.2.6-win32-bin`压缩包,包含可执行文件`memcached.exe`。运行该文件启动服务,并可以通过命令行参数进行配置,例如设置监听...

    memcached-1.5.11.tar.gz

    3. 连接池:为了提高性能,应用通常会使用连接池管理与Memcached的连接,避免频繁创建和销毁连接。 五、优化与维护 1. 负载均衡:在多台服务器上部署Memcached,通过一致性哈希或轮询等策略分配数据,避免热点问题...

    PHP实现多服务器session共享之memcache共享

    接下来,为了将session存储从本地文件系统切换到memcached,我们需要修改PHP的session配置。在php.ini文件中,设置以下选项: 1. `session.save_handler` - 将其值改为"memcache",指定使用memcached作为session...

    PHP_实现多服务器共享_SESSION_数据.rar

    一种常见的解决方案是使用中央化的SESSION存储,如数据库(MySQL、MongoDB等)、缓存服务(Redis、Memcached)或者专门的SESSION存储服务。通过在所有服务器上配置相同的SESSION处理函数,使得每次新的SESSION数据...

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

    下面详细解析在PHP中使用Memcache存储session的三种配置方法。 首先,我们需要了解Memcache是什么。Memcache是一种开源的分布式内存对象缓存系统,它通过在内存中缓存数据和对象来减少数据库负载,从而提高动态Web...

    memcached-win-1.5.6.rar

    在实际应用中,Memcached 可以与多种编程语言结合使用,如 PHP、Python、Java、Ruby 等,通过其提供的客户端库进行数据的缓存操作。它支持简单的键值对存储,适合存储临时性的、非结构化的数据,如session数据、热门...

    memcached-windows64-1.4安装文件

    2. **session共享**:在分布式环境中,可以将用户session存储在Memcached中,实现跨服务器的session共享。 3. **API缓存**:对于重复的API请求,可以先从缓存中获取数据,降低API调用频率。 4. **数据库查询结果缓存...

    memcached for windows source

    描述中提到,"php分布式缓存数据,提高系统性能",这意味着 Memcached 可以与 PHP 配合使用,作为 PHP 应用程序的分布式缓存解决方案。通过将常用数据存储在内存中,可以避免频繁访问数据库,从而显著提升系统的响应...

    memcached缓存系统

    3. **Session共享**:在分布式系统中,Memcached可用来存储用户的会话信息,实现跨服务器的Session共享。 4. **减少CDN回源**:配合内容分发网络(CDN),Memcached可以缓存静态资源,减少回源到源站的次数。 **安装...

    memcached

    - **Session共享**:在分布式环境中,可以使用Memcached共享用户session,避免session数据在服务器之间同步的问题。 **6. 与其他缓存系统的对比** Memcached专注于简单、高速的键值存储,而Redis则提供了更丰富的...

Global site tag (gtag.js) - Google Analytics