• 在ubuntu下安装memcache


    使用Memcache的网站一般流量都是比较大的,为了缓解数据库的压力,让Memcache作为一个缓存区域,把部分信息保存在内存中,在前端能 够迅速的进行存取。 下面来介绍一下如何安装和使用memcache。

    安装memcache


    在ubuntu下安装memcache是非常的简单和快捷的,直接安装即可(本人使用的是ubuntu 10.04LTS)
    sudo apt-get install memcached
    memcached -d -m 50 -p 11211 -u root


    参数说明:-m 指定使用多少兆的缓存空间;-p 指定要监听的端口; -u 指定以哪个用户来运行。查看更多启动参数

    接下来是要安装php的memcache模块和memcached模块

    sudo apt-get install php5-memcache
    sudo apt-get install php5-memcached 


    修改php.ini 的全局设置,本人的php.ini文件在/etc/php5/apache2/下
    sudo vi /etc/php5/apache2/php.ini

    找到session.save_handler,并设为 session.save_handler = memcache,把session.save_path前面的分号去掉,并设置为 session.save_path = “tcp://127.0.0.1:11211″
    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″ 。

    之后记得要重启apache服务器
    sudo /etc/init.d/apache2 restart

    查看一下phpinfo()中的 “Registered save handlers” 会有 “files user memcache” 这3个可用。如果没有的话重新安装一下或者确定自己是否有重启apache服务器。


    接下来要测试一下是否安装成功,编辑文件cache.php,内容为:
    view plaincopy to clipboardprint?

    error_reporting(E_ALL);  
    $memcache = new Memcache;  
    $memcache->connect('localhost', 11211) or die("Could not connect");  
          
    $memcache->set('key', 'This is a test!', 0, 60);  
    $val = $memcache->get('key');  
    echo $val;  


    如果能看到 This is a test!,表示正常安装成功了。
    用 memcache 来作 PHP 的 session.save_handler
    view plaincopy to clipboardprint?

    session_start();  
    $_SESSION["UserID"]=123;  
    echo session_id();  



    记下seesion_id,然后编辑一个新的文件,内容为:
    view plaincopy to clipboardprint?

    $memcache = memcache_connect('localhost', 11211);  
    var_dump($memcache->get('f4oi3gkal46t1vbb8kd98srff3'));   // f4oi3gkal46t1vbb8kd98srff3 必须换成你上面取得的session_id  


    如果显示 string(13) “UserID|i:123;” 那么表示你成功使用了memecache。

    用 memcache 来存储 session 在读写速度上会比 files 时快很多,而且在多个服务器需要共用 session 时会比较方便,将这些服务器都配置成使用同一组 memcached 服务器就可以,减少了额外的工作量。缺点是 session 数据都保存在 memory 中,持久化方面有所欠缺,但对 session 数据来说也不是很大的问题。
  • 相关阅读:
    分布式系统服务治理
    京东一面:子线程如何获取父线程ThreadLocal的值
    巨变来了,金融大数据平台走向何方
    自定义文件夹选择对话框
    DockManager快速隐藏DockPanel
    解决无法创建新的数据库,权限被拒绝的问题
    ArcGIS中的附件功能
    使用CompareStringEx来重新排序
    C#中获取操作系统版本
    list 泛型某一列统计计算求和、平均数、总个数、最大值、最小值
  • 原文地址:https://www.cnblogs.com/fdipzone/p/3715174.html
Copyright © 2020-2023  润新知