【问题标题】:Using memcached for multiple projects将 memcached 用于多个项目
【发布时间】:2014-10-12 17:48:57
【问题描述】:

我在我的 Ubuntu 服务器上为大约 10 个 PHP 网站使用 LEMP(Nginx、PHP-FPM)堆栈。每个网站都有自己的 chroot'ed php 池、ubuntu 用户、会话、日志和根文件夹。

最近遇到php session files inode问题:总共收集了大约1000万个session文件,只删除了大约需要2个小时。

现在我想要做的是,将会话处理从基于文件的切换到基于 Memcached 的平滑处理,不会影响任何网站。我的意思是不需要更改代码。

我的主要问题是,如果我在我的主 php.ini 上将默认会话处理从文件更改为 memcached,网站的会话数据之间是否会发生冲突?还是危险?有什么建议么?我需要更深入的解释

提前谢谢你

【问题讨论】:

    标签: php session nginx memcached


    【解决方案1】:

    我也有同样的情况。 1 个用于少数项目(网站)的 memcache 服务器。是的,我将所有会话都存储在内存缓存中。为了排除项目之间的冲突(我不仅将会话存储在 memcache 中),每个项目都有一个用于 memcache 访问(设置/删除)的唯一“前缀”。它的外观:

    <?
      class ui { // or whatever
        public function __construct() {
          $this->memcache = new Memcached;
          if (!$this->memcache->addServer("127.0.0.1","1111")) 
                die('Something wrong.');
          $this->memcache_prefix = 'someUniQueForThisProjectString';
        }
        public function memset($var, $value) {
          return $this->memcache->set($this->memcache_prefix.$var, $value);
        }
        public function memdel($var) {
          return $this->memcache->delete($this->memcache_prefix.$var);
        }
      }
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-14
      • 2012-07-25
      相关资源
      最近更新 更多