• memcache、redis


    memcache介绍与安装
    memcache是一个开源分布式的内存对象缓存系统(另一个类似功能的软件叫redis).一般放在web程序与数据库,帮助缓存程序取数据库的数据。
    client
    |
        正向代理(静态)
    因特网
    |
    squid或varnish(静态)
    |
    nginx
    php-factcgi(opcache做php代码缓存)
    |
    memcache或redis
    |
    mysql(query_cache)
    笔记目录/program/lnmp_soft/
    libevent-1.4.11-stable.tar.gz ----memcache的事件驱动库
    memcached-1.4.22.tar.gz ----memcache主程序包(memcache官网下载)
    memcache-2.2.7.tgz --php的memcache扩展包(php官网下载)
    上面三个软件包,第三个在安装php第三方扩展模块时就已经安装并支持了,所以下面继续安装另两个软件包
    # tar xf libevent-1.4.11-stable.tar.gz -C /usr/src/lnmp
    # cd /usr/src/lnmp/libevent-1.4.11-stable/
    # ./configure ;make ;make install
    # tar xf memcached-1.4.22.tar.gz -C /usr/src/lnmp
    # cd /usr/src/lnmp/memcached-1.4.22/
    # ./configure --with-libevent=/usr/local/
    # ;make ;make install
    # /usr/local/bin/memcached -d -m 100 -u root --启动memcached守护进程,-d表示启动daemon,-m 100表示分配100MB内存给memcached做缓存,-u root指定以root用户来跑这个daemon
    关闭方法(kill -TERM PID)
    # lsof -i:11211 ----默认端口为11211
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    memcached 28795 root 26u IPv4 268755 0t0 TCP *:memcache (LISTEN)
    memcached 28795 root 27u IPv6 268756 0t0 TCP *:memcache (LISTEN)
    memcached 28795 root 28u IPv4 268759 0t0 UDP *:memcache
    memcached 28795 root 29u IPv4 268759 0t0 UDP *:memcache
    memcached 28795 root 30u IPv4 268759 0t0 UDP *:memcache
    memcached 28795 root 31u IPv4 268759 0t0 UDP *:memcache
    memcached 28795 root 32u IPv6 268760 0t0 UDP *:memcache
    memcached 28795 root 33u IPv6 268760 0t0 UDP *:memcache
    memcached 28795 root 34u IPv6 268760 0t0 UDP *:memcache
    memcached 28795 root 35u IPv6 268760 0t0 UDP *:memcache
    测试:做完上面的步骤,其实你的工作基本就完成了,只需要告诉php开发人员,你的memcache的端口和IP,他们就可以写程序连接了
    # vim /lnmp/web/memcachetest.php --在家目录下做一个测试页面,使用firefox访问这个页面,如果能显示This is a test!,则表示成功
    <?php
    $mem = new Memcache;
    $mem->connect("127.0.0.1", 11211);
    $mem->set('key', 'This is a memcache test!', 0, 60);
    $val = $mem->get('key');
    echo $val;
    ?>
    测试memcache方法一
    (开memcache显示,关闭memcache不能显示)
    # vim /usr/local/php/etc/php.ini
    ;extension = "memcache.so" --前面加;符号注释来模拟关闭
    # pkill fpm
    # /usr/local/php/sbin/php-fpm -D -y /usr/local/php/etc/php-fpm.conf
    --再使用这两句把php的fastcgi重启,使之生效
    测试memcache方法二
    关闭memcache的11211,上面的This is a test!就无法显示.打开就OK
    -----------------
    上面是安装完memcached后,可以让开发人员使用。
    如果是象discuz这种开源论坛安装完后,我没有开发能力,如何让discuz使用memcache?
    使用安装时的admin用户和密码登陆后台http://10.1.1.9:8000/admin.php
    点全局--》性能优化--》内存优化
    可以看到memcache是支持,但是关闭的
    把关闭状态改成打开的方法为:
    # vim /lnmp/web/config/config_global.php
    25 $_config['memory']['memcache']['server'] = '127.0.0.1'; --把这个IP127.0.0.1配上(如果memcache在另一台机器上,就写它的IP)
    保存后,再刷新后台的内存优化界面状态就变为打开了
    ################################################################################
    把memcache换成redis
    web
    |
    redis
    |
    mysql
    笔记目录/program/lnmp_soft/
    phpredis-2.2.7.tar.gz ----php连接redis的扩展包
    redis-3.0.7.tar.gz ----redis主程序包
    第一大步:让php支持redis扩展
    # tar xf phpredis-2.2.7.tar.gz -C /usr/src/lnmp/
    # cd /usr/src/lnmp/phpredis-2.2.7/
    # /usr/local/php/bin/phpize
    # ./configure --with-php-config=/usr/local/php/bin/php-config
    # make ;make install
    # ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/ ----这里就会多了redis.so
    imagick.so memcache.so opcache.a opcache.so redis.so
    # vim /usr/local/php/etc/php.ini --加上redis.so的支持
    extension = "redis.so"
    # pkill fpm
    # /usr/local/php/sbin/php-fpm -D -y /usr/local/php/etc/php-fpm.conf ----重启fpm
    # /usr/local/php/bin/php -m |grep redis --可以看到redis,表示已经支持
    redis
    第二大步:
    安装redis主程序包,并启动redis服务
    # tar xf redis-3.0.7.tar.gz -C /usr/src/lnmp/
    # cd /usr/src/lnmp/redis-3.0.7/
    # make
    # make install
    # cp /usr/src/lnmp/redis-3.0.7/redis.conf /etc/ --拷贝配置文件模版
    # vim /etc/redis.conf
    daemonize yes --改为yes,表示运行成daemon模式
    # redis-server /etc/redis.conf ----启动redis
    # lsof -i:6379 --端口为6379
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    redis-ser 21373 root 4u IPv6 175620 0t0 TCP *:6379 (LISTEN)
    redis-ser 21373 root 5u IPv4 175622 0t0 TCP *:6379 (LISTEN)
    第三大步:
    使用安装时的admin用户和密码登陆后台http://10.1.1.9:8000/admin.php
    点全局--》性能优化--》内存优化
    可以看到redis是支持,但是关闭的
    把关闭状态改成打开的方法为:
    # vim /lnmp/web/config/config_global.php
    19 $_config['memory']['redis']['server'] = '127.0.0.1';
    再回到web去刷新,就可以看到redis是支持并且打开状态了
    =============================================================
    补充三:
    把单机lnmp分离成多机
    你可以把nginx,php,memcache或redis,mysql分成四台服务器都可以
    跟单机lnmp的区别在于:
    1,php的编译如果用下面的参数,那么编译没什么区别,远程一样可以让php支持mysql
    --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
    2,在安装论坛时,mysql授权时要写php的IP
    # grant all on discuz.* to 'discuzuser'@'PHP服务器IP' identified by '123';
    # flush privileges;
    3,在安装论坛的web页面,写mysql在哪里,要写mysql的IP加端口,而不是localhost
    client
    nginx
    php(fastcgi) opcache
    memcache或redis
    mysql
    nginx_proxy(反向代理)
    squid或varnish squid或varnish
    nginx_web nginx_web
    php(fastcgi) php(fastcgi)
    memcache或redis memcache或redis
    mysql主 mysql从1 mysql从2
    写 读 读
  • 相关阅读:
    地图相关
    爬虫机器人检测网站
    Git 工作区、暂存区和版本库概念
    linux镜像下载地址
    selenium基本使用
    socket 编程
    视频观看时间统计
    油猴脚本
    (II)第十三节:使用注解创建Dao、Service、Controller Bean 组件
    (II)第十一节:SpEL 表达式
  • 原文地址:https://www.cnblogs.com/skyzy/p/9201332.html
Copyright © 2020-2023  润新知