thinkphp5 memcached 安裝、調用、連接

環境php

linux  memcached1.5.9 (memcached安裝在虛擬機192.168.70.164)linux

wampserver集成環境 thinkphp5 php7 git

 

 

步驟一:linux安裝memcachedredis

1.Linux系統安裝memcached,首先要先安裝libevent庫。thinkphp

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連接memcachedphp7

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是有本機訪問,要外部機器訪問須要設置:app

#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擴展ssh

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 think\cache\Driver\Memcache;

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,這裏有點蒙圈

相關文章
相關標籤/搜索