关键词: Memcached   PHP 客户端

声明:本文并非原创,转自华为云帮助中心的分布式缓存服务(Memcached)的用户指南。客户端连接方法通用,故摘抄过来分享给大家。

PHP客户端

RedHat系列:

以CentOS7为例介绍PHP版本客户端的安装。Redhat、Fedora等系统也适用。

  1. 安装gcc-c++及make等编译组件。

    yum install gcc-c++ make

  2. 安装sasl相关包。

    yum install cyrus-sasl*

  3. 安装libmemcached。

    由于libmemcached库需要增加sasl认证参数,因此不能直接使用yum命令安装。

    wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz

    tar -xvf libmemcached-1.0.18.tar.gz

    cd libmemcached-1.0.18

    ./configure --prefix=/usr/local/libmemcached --enable-sasl

    make && make install

     说明:

    安装libmemcached之前要完成gcc-c++、sasl相关组件的安装。否则会在编译过程中报错,报错问题解决后请执行make clean之后重新make。

  4. 安装php。

    yum install php-devel php-common php-cli

  5. 安装memcached客户端。

    注意运行configure配置安装时,增加开启sasl参数。

    wget http://pecl.php.net/get/memcached-2.1.0.tgz

    tar zxvf memcached-2.1.0.tgz

    cd memcached-2.1.0

    phpize

    ./configure --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached-sasl

    make && make install

  6. 增加php.ini配置。

    使用find或者locate命令找到php.ini文件。

    find / -name php.ini

    编辑该文件,增加以下两行:

    extension=memcached.so
    memcached.use_sasl = 1
     

  7. 测试连接。

    新增一个memcached.php文件,增加如下内容:

    <?php
    $connect = new Memcached; //声明一个Memcached连接
    $connect->setOption(Memcached::OPT_COMPRESSION, false); //关闭压缩
    $connect->setOption(Memcached::OPT_BINARY_PROTOCOL, true); //使用二进制协议
    $connect->setOption(Memcached::OPT_TCP_NODELAY, true); //关闭TCP网络延迟策略
    $connect->addServer('{memcached_instance_ip}', 11211); //此处填写实例ip和端口
    $connect->setSaslAuthData('{username}', '{password}'); //如果实例开启免密访问,则删除或者注释此行
    $connect->set("DCS", "Come on!");
    echo 'DCS: ',$connect->get("DCS");
    echo "\n";
    $connect->quit();
    ?>
     

    保存后运行情况如下:

    [root@testphpmemcached ~]# php memcached.php
    DCS: Come on!
    [root@testphpmemcached ~]#
     

debian系列

以Ubuntu为例,安装步骤如下:

  1. 安装gcc及make等编译组件。

    apt install gcc make

  2. 安装php。

    推荐使用php5.x的版本,对sasl认证兼容性较好。

    按照如下步骤先添加php低版本的镜像源,然后安装php5.6以及php5.6-dev。

    apt-get install -y language-pack-en-base;

    LC_ALL=en_US.UTF-8;

    add-apt-repository ppa:ondrej/php;

    apt-get update;

    apt-get install php5.6 php5.6-dev;

    安装完成后,使用php -version,查看版本号为5.6,说明安装成功。

    root@dcs-nodelete:/etc/apt# php -version
    PHP 5.6.36-1+ubuntu16.04.1+deb.sury.org+1 (cli)
    Copyright (c) 1997-2016 The PHP Group
     
     说明:

    如果需要卸载php,可使用如下命令:

    apt install aptitude -y

    aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`

  3. 安装sasl组件。

    apt install libsasl2-dev cloog.ppl

  4. 安装libmemcached。

    wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz

    tar -xvf libmemcached-1.0.18.tar.gz

    cd libmemcached-1.0.18

    ./configure --prefix=/usr/local/libmemcached

    make && make install

     说明:

    安装libmemcached之前要完成gcc、sasl相关组件的安装。否则会在编译过程中报错,报错问题解决后请执行make clean之后重新make。

  5. 安装memcached客户端。

    首先安装zlib组件。

    apt install zlib1g.dev

    安装注意运行configure配置安装时,增加开启sasl参数。

    wget http://pecl.php.net/get/memcached-2.2.0.tgz;

    tar zxvf memcached-2.2.0.tgz;

    cd memcached-2.2.0;

    phpize5.6;

    ./configure --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached-sasl;

    make && make install;

  6. 增加pdo.ini配置。

    使用find命令找到pdo.ini文件。

    find / -name pdo.ini

    默认应该在/etc/php/5.6/mods-available路径下。编辑该文件,增加以下两行:

    extension=memcached.so
    memcached.use_sasl = 1
     

  7. 测试连接。

    新增一个memcached.php文件,增加如下内容:

    <?php
    $connect = new Memcached; //声明一个Memcached连接
    $connect->setOption(Memcached::OPT_COMPRESSION, false); //关闭压缩
    $connect->setOption(Memcached::OPT_BINARY_PROTOCOL, true); //使用二进制协议
    $connect->setOption(Memcached::OPT_TCP_NODELAY, true); //关闭TCP网络延迟策略
    $connect->addServer('{memcached_instance_ip}', 11211); //此处填写实例ip和端口
    $connect->setSaslAuthData('{username}', '{password}'); //如果实例开启免密访问,则删除或者注释此行
    $connect->set("DCS", "Come on!");
    echo 'DCS: ',$connect->get("DCS");
    echo "\n";
    $connect->quit();
    ?>
     

    保存后运行情况如下:

    [root@dcs-nodelete ~]# php memcached.php
    DCS: Come on!
    [root@dcs-nodelete ~]#

Memcache的客户端连接系列(四) PHP的更多相关文章

  1. Memcache的客户端连接系列(三) C++

    关键词: Memcached   C++ 客户端 声明:本文并非原创,转自华为云帮助中心的分布式缓存服务(Memcached)的用户指南.客户端连接方法通用,故摘抄过来分享给大家. C++客户端示例 ...

  2. Memcache的客户端连接系列(二) Python

    关键词: Memcached   Python 客户端 声明:本文并非原创,转自华为云帮助中心的分布式缓存服务(Memcached)的用户指南.客户端连接方法通用,故摘抄过来分享给大家. Python ...

  3. Memcache的客户端连接系列(一) Java

    声明:本文并非原创,转自华为云帮助中心的分布式缓存服务(Memcached)的用户指南. 关键词: Memcached  客户端 Java Java连接池 Java客户端示例 用户的弹性云服务器已安装 ...

  4. 第四节 RabbitMQ在C#端的应用-客户端连接

    原文:第四节 RabbitMQ在C#端的应用-客户端连接 版权声明:未经本人同意,不得转载该文章,谢谢 https://blog.csdn.net/phocus1/article/details/87 ...

  5. redis学习教程四《管理、备份、客户端连接》

    redis学习教程四<管理.备份.客户端连接>  一:Redis服务器命令 Redis服务器命令 下表列出了与Redis服务器相关的一些基本命令. 序号 命令 说明 1 BGREWRITE ...

  6. Redis 数据备份与恢复,安全,性能测试,客户端连接,管道技术,分区(四)

    Redis 数据备份与恢复 Redis SAVE 命令用于创建当前数据库的备份. 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实例 re ...

  7. Mina 系列(四)之KeepAliveFilter -- 心跳检测

    Mina 系列(四)之KeepAliveFilter -- 心跳检测 摘要: 心跳协议,对基于CS模式的系统开发来说是一种比较常见与有效的连接检测方式,最近在用MINA框架,原本自己写了一个心跳协议实 ...

  8. 配置ORACLE 客户端连接到数据库

    --================================= -- 配置ORACLE 客户端连接到数据库 --================================= Oracle ...

  9. Oracle RAC 客户端连接负载均衡(Load Balance)

    实现负载均衡(Load Balance)是Oracle RAC最重要的特性之一,主要是把负载平均分配到集群中的各个节点,以提高系统的整体吞吐能力.通常情况下有两种方式来实现负载均衡,一个是基于客户端连 ...

随机推荐

  1. React Native IOS ---基础环境搭建(前端架构师)

    React Native -IOS 开发环境搭建 web架构(基础) 安装依赖 * 必须安装的依赖有:Node.Watchman 和 React Native 命令行工具以及 Xcode. npm 镜 ...

  2. 基于vue脚手架的项目打包上线(发布)方法和误区

    最近要把vue脚手架开发的一个项目上线,只知道vue脚手架是基于node的服务端项目,那么只需要 npm run dev 就可以轻松启动整个项目,当我想当然的给服务器配置合适的node环境(这里也遇到 ...

  3. javaSpring知识点总结

    1 js 概述 js是一门基于对象和事件驱动的脚本语言,主要应用在客户端 js特点: 交互性(信息的动态交互) 安全性(不允许直接访问本地硬盘) 跨平台(只要是可以解释js的浏览器都可以执行,和平台无 ...

  4. mysql获取正在运行的sql

    select id,db,host,time,info,command from information_schema.processlist where command<>'sleep' ...

  5. DZNSegmentedControl和XLForm联合使用

    前言: 可能我还没有掌握IOS开发的精髓, 总感觉写ios代码像调bug, 任何一个功能开发完成之后总会有莫名其妙的问题, 最终这些问题很大概率会归结为"系统特性". 正文: 问题 ...

  6. 三、Hadoop 的 API

    1.环境搭建 <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop- ...

  7. iOS之estimatedHeightForRowAtIndexPath避免程序EXC_BAD_ACCESS

    在你的项目中把estimatedHeightForRowAtIndexPath方法写实现以下,返回一个估计高度(随便估,笔者建议还是按照正常思路来写,大概高度是多少就返回多少),这样就不会报EXC_B ...

  8. C#远程连接postgresql数据库

    第一次在项目中遇到远程访问postgresql数据库的,当时经常会出现连接数据库的错误,连接字符串出现乱码现象 解决方案 在配置文件中添加连接字符串 <add key="Informa ...

  9. python学习笔记:第20天 多继承、MRO C3算法

    目录 一.多继承 二.旧式类的MRO 三.新式类的MRO 四.super 一.多继承 之前已经学习过了继承,当出现了x是⼀种y的的时候,就可以使⽤继承关系,即"is-a" 关系.在 ...

  10. FPGA算法学习(1) -- Cordic(Verilog实现)

    上两篇博文Cordic算法--圆周系统之旋转模式.Cordic算法--圆周系统之向量模式做了理论分析和实现,但是所用到的变量依然是浮点型,而cordic真正的用处是基于FPGA等只能处理定点的平台.只 ...