阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7 从零开始安装编译Memcached及配置

242次阅读
没有评论

共计 3625 个字符,预计需要花费 10 分钟才能阅读完成。

序言

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

Memcached 基于一个存储键 / 值对的 hashmap。其守护进程(daemon)是用 C 写的,但是客户端可以用任何语言来编写,并通过 memcached 协议与守护进程通信。

当然 memcached 分为服务端和客户端。服务端用来存放缓存,客户端用来操作缓存。

客户端有两种常见的实现方式。

第一种是用 php 代码根据服务端的通讯规则自己写一个。

第二种是安装 php 扩展库(php-memcached)。

一、准备工作

创建目录 source 和 package,分别用来放源码和编译后的文件

# mkdir /source/
# mkdir /package/

二、memcached(服务端篇)

首先先安装 memcached 依赖库 libevent。

2.1 安装 libevent

[官方网站] http://libevent.org/

命令流程:

# cd /source/
# wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
# tar -zxvf libevent-2.0.22-stable.tar.gz
# cd libevent-2.0.22-stable
# ./configure –prefix=/package/libevent
# make
# make install

2.2 安装 memcached

[官方网站] http://memcached.org/

命令流程:

# cd /source/
# wget http://memcached.org/files/memcached-1.4.25.tar.gz
# tar -zxvf memcached-1.4.25.tar.gz
# cd memcached-1.4.25
# ./configure –prefix=/lnmp/memcached –with-libevent=/package/libevent
# make
# make install

本章总结:

通过以上操作就很简单的把 memcached 服务端编译好了。这时候就可以打开服务端进行工作了。

# /lnmp/memcached/bin/memcached -d -m 2048 -l 127.0.0.1 -p 11211 -u root -c 1024 –P /tmp/memcached.pid
启动参数说明:
-d 选项是启动一个守护进程。
-m 分配给 Memcache 使用的内存数量,单位是 MB,默认 64MB。
-l 监听的 IP 地址。(默认:INADDR_ANY,所有地址)
-p 设置 Memcache 的 TCP 监听的端口,最好是 1024 以上的端口。
-u 运行 Memcache 的用户,如果当前为 root 的话,需要使用此参数指定用户。
-c 选项是最大运行的并发连接数,默认是 1024。
-P 设置保存 Memcache 的 pid 文件。

三、客户端篇:php 代码

这种方法实现客户端最简单,直接下载我写的《SL_Memcached》类库 include 到自己的项目里调用相关对象就行了。

当然,你也可以用其他语言实现。这里就不在讲了。

使用方法如下:

<?php
include(‘memcached.class.php’);

$memcached = new SL_Memcached(); // 实例化对象
$memcached->connect(‘127.0.0.1:11211’); // 连接 memcached 服务端

$memcached->set(‘key1’, ‘ 我是快乐的键值 ’); // 设置键值
$memcached->set(‘key2’, ‘ 我就要被删了 ’); // 设置键值
$memcached->delete(‘key2’); // 删除键值

var_dump($memcached->get(‘key1’)); // 获取键值
var_dump($memcached->get(‘key2’)); // 获取键值
?>

输出:

string(21) “ 我是快乐的键值 ”

NULL

四、客户端篇:php-memcached

4.1 安装 libmemcached

[官网] http://libmemcached.org/

命令流程:

# yum install libmemcached libmemcached-devel

4.2 安装 php-memcached

[官方网站] http://pecl.php.net/package/memcached

命令流程:

# cd /source/
# wget http://pecl.php.net/get/memcached-3.0.3.tgz
# tar -zxvf memcached-3.0.3.tgz
# cd memcached-3.0.3
# /lnmp/php/bin/phpize
# ./configure –with-php-config=/lnmp/php/bin/php-config
# make && make install

备注:

安装成功后会有如下类似提示:

Installing shared extensions:    /lnmp/php/lib/php/extensions/no-debug-non-zts-20151012/

这说明在 /lnmp/php/lib/php/extensions/no-debug-non-zts-20151012/ 该目录下会生成 memcached.so

这个就是 memcached.so 所在目录。我们先记住这个目录。

开始配置 php-memcached

打开 php.ini

# vi /lnmp/php/etc/php.ini

在合适的位置添加如下
extension = /lnmp/php/lib/php/extensions/no-debug-non-zts-20151012/memcached.so

CentOS 7 从零开始安装编译 Memcached 及配置

五、常见错误总汇

5.1 Unable to load dynamic library ‘memcached.so’ – libmemcached.so.11: cannot open shared object file: No such file or directory in Unknown no line 0

说明:没有找到 php 的附加库 memcached.so 所需动态库 libmemcached.so.11。出现上述错误一般是没有将 libmemcached 目录设置到环境变量里。

我们添加到环境变量 LD_LIBRARY_PATH 里就搞定了。

# export LD_LIBRARY_PATH=/package/libmemcached/lib:$LD_LIBRARY_PATH

为 PHP 安装 Memcached 扩展连接 Memcached https://www.linuxidc.com/Linux/2016-05/131690.htm
Linux 下 Memcached 安装与启用  https://www.linuxidc.com/Linux/2016-07/133423.htm
Memcached 构建缓存加速集群部署 https://www.linuxidc.com/Linux/2017-02/140656.htm
Linux CentOS 7 下通过 Memcached 实现 Session 共享  https://www.linuxidc.com/Linux/2016-09/135552.htm
Memcached 的安装配置及将 PHP 的 session 保存在 Memcached 中  https://www.linuxidc.com/Linux/2017-02/140679.htm
Linux CentOS 7 下通过 Memcached 实现 Session 共享  https://www.linuxidc.com/Linux/2016-09/135552.htm
CentOS 6.6 下 Memcached 源码安装配置  https://www.linuxidc.com/Linux/2015-09/123019.htm
Linux CentOS 7 下 Memcached 安装与配置  https://www.linuxidc.com/Linux/2016-09/135553.htm
Memcached 服务器端与 PHP-Memcache 客户端安装配置  https://www.linuxidc.com/Linux/2017-11/148428.htm
Memcached 入门基础教程  https://www.linuxidc.com/Linux/2017-11/148542.htm

Memcached 的详细介绍 :请点这里
Memcached 的下载地址 :请点这里

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3625字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中