zoukankan      html  css  js  c++  java
  • thinkphp5 memcached 安装、调用、链接

    环境

    linux  memcached1.5.9 (memcached安装在虚拟机192.168.70.164)

    wampserver集成环境 thinkphp5 php7 

    步骤一:linux安装memcached

    1.Linux系统安装memcached,首先要先安装libevent库。

    2.源码安装

    wget http://memcached.org/latest                    下载最新版本
    tar -zxvf memcached-1.x.x.tar.gz                    解压源码
    cd memcached-1.x.x                                  进入目录
    ./configure --prefix=/usr/local/memcached           配置
    make && make test                                   编译
    sudo make install                                   安装

    3.运行 memcached

    // 作为前台程序运行
    /usr/local/memcached/bin/memcached -p 11211 -m 64m -vv

    // 作为后台程序运行

    #/usr/local/memcached/bin/memcached -p 11211 -m 64m -d 或者
    #/usr/local/memcached/bin/memcached -d -m 64M -u root -l 0.0.0.0 -p 11211 -c 256 -P /tmp/memcached.pid

    4.ssh链接memcached

    telnet 127.0.0.1 11211
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    // 以上为正常状态
    
    //  这是一条完整的创建命令
    set foot 0 0 3 
    bar 
    // 记得按回车键 End
    
    set foo 0 0 3                                                   保存命令
    bar                                                             数据
    STORED                                                          结果
    get foo                                                         取得命令
    VALUE foo 0 3                                                   数据
    bar                                                             数据
    END                                                             结束行
    quit                                                            退出

    注意:默认情况下memecached是有本机访问,要外部机器访问需要设置:

    #netstat -tnlp   // 查看监听状态
    
    #/usr/local/memcached/bin/memcached -d -m 10 -u root -l 0.0.0.0 -p 12000 -c 256 -P /tmp/mem  // 设置对外访问(0.0.0.0) 【127.0.0.1只有本机访问】

    步骤二:php7添加memcache扩展

    1.下载php_memcache.dll

    下载地址:https://gitee.com/zhongjie19/php7_memcached.dll

    2.php.ini配置 

    extension=php_memcache.dll  // php.ini末尾加入

    步骤三:thinkphp5链接memcached,有三种链接方式

    1.普通cache,只需要修改application/config.php,参数如下(注意加入缓存ip和端口)

    // +----------------------------------------------------------------------
        // | 缓存设置
        // +----------------------------------------------------------------------
    
        'cache'                  => [
            // 驱动方式
            'type'   => 'memcache',
            // 缓存保存目录
            'path'   => CACHE_PATH,
            // 缓存前缀
            'prefix' => '',
            'host'=>'192.168.70.164',
            'port' => '12000',
            // 缓存有效期 0表示永久缓存
            'expire' => 0,
        ],

    php

    导入:use thinkcacheDriverMemcache;

    public function m2(){
            cache('name','7777');
        }

    ssh

    get name
    VALUE name 768 3
    777
    END

    2.复合缓存

    'cache' =>  [
            // 使用复合缓存类型
            'type'  =>  'complex',
            // 默认使用的缓存
            'default'   =>  [
                // 驱动方式
                'type'   => 'file',
                // 缓存保存目录
                'path'   => CACHE_PATH,
            ],
            // 文件缓存
            'file'   =>  [
                // 驱动方式
                'type'   => 'file',
                // 设置不同的缓存保存目录
                'path'   => RUNTIME_PATH . 'file/',
            ],
            // redis缓存
            /*'redis'   =>  [
                // 驱动方式
                'type'   => 'memcached',
                // 服务器地址
                'host'       => '192.168.70.164',
                'password' => 'admin999',
            ],*/
            // memcache缓存
            'memcache'   =>  [
                // 驱动方式
                'type'   => 'memcache',
                // 服务器地址
                'host'       => '192.168.70.164',
                'port' => '12000',
    
            ],

    php

    public function m(){
            //$mem = Cache::store('memcache')->get('name');
            $mem = Cache::store('memcache')->set('name',666);
            //print_r($mem);
        }

    ssh

    get name
    VALUE name 768 3
    777
    END

    3.内部链接

    public function mem(){
            $mem = new Memcache();
            $mem->connect("192.168.70.164", 12000);
            $mem->set('name',3333);
            $val = $mem->get('name');
            echo $val;
        }

    以上都是关闭了iptables 

    service iptables stop

    其它:

    #只允许本机使用11211
    iptables -A INPUT -p tcp -s 127.0.0.1 --dport 11211 -j ACCEPT
    iptables -A INPUT -p udp -s 127.0.0.1 --dport 11211 -j ACCEPT
    
    #禁止公网入方向11211端口
    iptables -I INPUT -p tcp --dport 11211 -j DROP
    iptables -I INPUT -p udp --dport 11211 -j DROP
    
    #保存配置,重启iptables
    service iptables save
    service iptables restart

    总结:

    1.注意memcached对外开放的端口,12000

    2. 在虚拟机里面装的是memcached,但是在tp5里面调用却是memcache,php7的扩展也是php_memcache.dll,这里有点蒙圈

  • 相关阅读:
    我的大菠萝 – 2,控件及数据绑定
    我的大菠萝 – 1,大框架的搭建
    企业培训·在线教育产品出来后为什么团队元老选择离职
    ET中热更(ILRuntime)使用过程中,需要做的适配器,比如Linq排序
    ET–异步协程使用–TimerComponent篇
    Windows Phone开发之”给我好评“
    博客园,我开始自己的随笔啦
    转换服务的端口号
    多进程模块multiprocessing的使用
    python中协程的使用示例
  • 原文地址:https://www.cnblogs.com/wesky/p/9400366.html
Copyright © 2011-2022 走看看