• 四 Memcache


    官网http://memcached.org

    了解 cookies和session

    安装memcached

    # yum install memcached  -y

    安装nc和telnet 来管理memcached

    # yum install nc telnet -y

    查看配置文件

    # cat /etc/sysconfig/memcached

     查看启动文件

    # cat /usr/lib/systemd/system/memcached.service

     启动

    # systemctl start memcached.service

     

    检查一下memcached的端口

    # ss -lntup|grep memcached

     

     

    # printf "set oldboy01 0 0 10 lidao99601 "|nc 172.16.1.21 11211
    STORED

    # printf "get oldboy01 "|nc 172.16.1.21 11211
    VALUE oldboy01 0 10
    lidao99601
    END

     设置只监听内网网卡 # vim /etc/sysconfig/memcached

     

    或者修改# cat /usr/lib/systemd/system/memcached.service

    添加到ExecStart= 后面

     

    重启# systemctl  restart memcached.service 实际工作中不要重启 

    重启过后数据就没了  因为他只是工作在内存中

    ========================================================

     具体做法 php部署memcache客户端

    将web01的wordpress准备好,接下来在这台机器安装memcache客户端。
    tar xf memcache-2.2.5.tgz
    cd memcache-2.2.5
    /application/php/bin/phpize
    ./configure --enable-memcache --with-php-config=/application/php/bin/php-config --with-zlib-dir
    make
    make install

    =====================================================================

    安装完成会有个命令只能在PHP里使用

    Installing shared extensions:

    php.ini-production改名为php.ini

    # vim /application/php/lib/php.ini最后一行加上extension=memcache.so

    sed -i '$a extension=memcache.so' /application/php/lib/php.ini
    pkill php #killall php-fpm 杀掉php
    /application/php/sbin/php-fpm -t 检查语法

    /application/php/sbin/php-fpm  启动

    # /application/php/bin/php -m|grep mem检查是否有memcache模块
    memcache

    /application/php/bin/php -m|grep memcache

     ==================================================

    php代码测试 

    EOF两边加了双引号或者单引号 编辑的内容有符号的不会被解析

    cat >/application/nginx/html/blog/mc.php<<'EOF'
    <?php
    $memcache = new Memcache;
    $memcache->connect('10.0.0.21', 11211) or die ("Could not connect");
    $memcache->set('key_oldboy', 'hello,oldgirl');
    $get_value = $memcache->get('key_oldboy');
    echo $get_value;
    ?>
    EOF
    # printf "get key20171117 "|nc 10.0.0.21 11211
    VALUE key20171117 0 11
    hello,world
    END

     =================================================

    web管理memcached

    官网:http://www.junopen.com/memadmin/
    tar xf memadmin-1.0.12.tar.gz -C /application/nginx/html/blog/

    memadmin里面的权限过大 修改一下

    # find memadmin -type f |xargs chmod 644
    # find memadmin -type d |xargs chmod 755

    浏览器访问http://blog.etiantian.org/memadmin

    默认账号密码admin

     

    Memcached缓存案例1-缓存wordpress数据库

    wordpress缓存数据缓存到memcached中:

    插件下载地址https://cn.wordpress.org/plugins/memcached/
    wordpress缓存数据缓存到redis中:

    插件下载https://cn.wordpress.org/plugins/redis-cache/


    wordpress会自动检查wp-content下面是否有object-cache.php
    使用memcached缓存wordpress博文数据

    下载好后解压移动到

    # mv object-cache.php /application/nginx/html/blog/wp-content/

    # vim object-cache.ph
    修改:array('127.0.0.1','');为memcached服务器ip地址

    365                         $buckets = array('172.16.1.21:11211','');

     ==================================================

    测试 登录博客 写内容,然后查看memcache的web管理命中监控不断增加

    数据遍历 相应的内容和数据库的一样,这样就成功把数据库的信息缓存到了memcache里

     ===================================================

    Memcached Session共享
    方法1:通过程序实现,web01只需要往memcahce写session,web02从memcahce读session,当作普通数据读写(更具有通用性)

    方法2:通过php的配置文件,php默认将session存储在文件中,修改为存储在memcached中

     

    [root@web01 php]# grep 'session.save' /application/php/lib/php.ini
    ; http://php.net/session.save-handler
    session.save_handler = files 存放会话数据的地方换成memcache
    ; session.save_path = "N;/path"
    ; session.save_path = "N;MODE;/path"
    ; http://php.net/session.save-path
    ;session.save_path = "/tmp"  默认方在/tmp下 设置存放在memcached服务下"tcp://172.16.1.21:11211"
    ; (see session.save_path above), then garbage collection does *not*

    sed -i 's#session.save_handler = files#session.save_handler = memcache#;$a session.save_path = "tcp://172.16.1.21:11211"' /application/php/lib/php.ini

    使用这个功能,需要使用php的session函数

  • 相关阅读:
    How to Install Linux, Apache, MySQL, PHP (LAMP) stack on CentOS 6 【Reliable】
    可以把一些常用的方法,写入js文件,引入html界面
    把功能写在方法里,函数化,方法化
    那些SQL语句
    Linux&shell之高级Shell脚本编程-创建菜单
    Linux&shell之高级Shell脚本编程-创建函数
    PHP isset()与empty()的使用区别详解
    如何打开mo文件并修改 PoEdit
    Linux&shell之如何控制脚本
    Linux&shell之显示数据
  • 原文地址:https://www.cnblogs.com/cqzhou/p/9224799.html
Copyright © 2020-2023  润新知