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

Memcache的部署和使用

389次阅读
没有评论

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

一、memcache 简介

Memcache 最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。

Memcache 官方网站:http://memcached.org/ 

二、memcache 的安装

1、下载源文件(目前最新稳定版本是 memcached-1.4.5.tar.gz)

wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz

由于 Memcache 用到了 libevent 这个库用于 Socket 的处理,所以还需要安装 libevent,

Libevent 的官网为 http://www.monkey.org/~provos/libevent/,最新稳定版本为:1.4.14b

wget http://www.monkey.org/~provos/libevent-1.4.14b-stable.tar.gz

2、安装 memcache

1)、安装 libevent

# tar xzvf libevent-1.4.14b-stable.tar.gz

# cd libevent-1.4.14b-stable

# ./configure –prefix=/usr

# make && make install

# cd ..

# ls -al /usr/lib | grep libevent(查看是否安装成功)

2)、安装 memcache

# tar xzvf memcached-1.4.5.tar.gz

# cd memcached-1.4.5

# ./configure –with-libevent=/usr

# make && make install

# ls -al /usr/local/bin/mem*   (查看是否生成 memcached 可执行程序文件)

# 备注:如果是 64 位的系统可能会报错,因为默认的库文件只会安装到 /usr/lib 下面

3、启动 memcache

# 通过 /usr/local/bin/memcached –h 查看命令选项帮助

[root@CentOS2 memcached-1.4.5]# /usr/local/bin/memcached -h

memcached 1.4.5

-p< num>      TCP port number to listen on (default: 11211)

-U< num>      UDP port number to listen on (default: 11211, 0 is off)

-s< file>    UNIX socket path to listen on (disables network support)

-a< mask>    access mask for UNIX socket, in octal (default: 0700)

-l< ip_addr>  interface to listen on (default: INADDR_ANY, all addresses)

-d            run as a daemon

-r            maximize core file limit

-u< username> assume identity of <username> (only when run as root)

-m< num>      max memory to use for items in megabytes (default: 64 MB)

-M            return error on memory exhausted (rather than removing items)

-c< num>      max simultaneous connections (default: 1024)

 

# 启动命令如下

# /usr/local/bin/memcached -d -m 10  -u root -l 172.28.5.2 -p 12000 -c 1024 –P /tmp/memcached.pid

#### 相关选项说明

-d   表示启动一个守护进程

-m 是分配给 memcached 使用的内存

-u   运行 memcached 的用户

-l    是 memcached 监听的 ip

-p    是 memcached 监听的端口

-c    memcache 运行的最大并发连接数

-P    是设置 memcache 的 pid 文件

 

三、Php 的 memcache 扩展的安装

1、windows 平台 memcache 扩展的安装

下载相应版本的 php_memcache.dll 文件,然后将该文件放到 D:\AppServ\php5\ext 目录下(路径根据 php 安装的位置不同请自行设置),然后更改相应的 php.ini 的设置,创建 <?php phpinfo();?> 的 php 文件,访问这个文件看 memcache 模块是否起作用。

2、linux 平台 memcache 扩展的安装

wget http://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz

tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5/
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config
make
make install
cd ../

修改 php.ini 文件

查找 /usr/local/php/etc/php.ini 中的 extension_dir = “./” 修改为 extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/”

并在此行后增加一行,然后保存:

extension = “memcache.so”

创建 php 文件 aaa.php, 内容如下:

<?php

Phpinfo();

?>

保存,然后访问看是否能显示 memcache 模块的信息!

Memcached 安装及启动脚本 http://www.linuxidc.com/Linux/2013-07/87641.htm

PHP 中使用 Memcached 的性能问题 http://www.linuxidc.com/Linux/2013-06/85883.htm

Ubuntu 下安装 Memcached 及命令解释 http://www.linuxidc.com/Linux/2013-06/85832.htm

Memcached 的安装和应用 http://www.linuxidc.com/Linux/2013-08/89165.htm

使用 Nginx+Memcached 的小图片存储方案 http://www.linuxidc.com/Linux/2013-11/92390.htm

Memcached 使用入门 http://www.linuxidc.com/Linux/2011-12/49516p2.htm

四、Memcache 的使用

// 使用部分是转载的

[接口介绍 ]
服务器端和客户端都安装配置好了,现在我们就来测试以下我们的成果。Memcache 客户端包含两组接口,一组是面向过程的接口,一组是面向对象的接口,具体可以参考 PHP 手册“LXXV. Memcache Functions”这章。我们为了简单方便,就使用面向对象的方式,也便于维护和编写代码。Memcache 面向对象的常用接口包括:

Memcache::connect — 打开一个到 Memcache 的连接
Memcache::pconnect — 打开一个到 Memcache 的长连接
Memcache::close — 关闭一个 Memcache 的连接
Memcache::set — 保存数据到 Memcache 服务器上
Memcache::get — 提取一个保存在 Memcache 服务器上的数据
Memcache::replace — 替换一个已经存在 Memcache 服务器上的项目(功能类似 Memcache::set)
Memcache::delete — 从 Memcache 服务器上删除一个保存的项目
Memcache::flush — 刷新所有 Memcache 服务器上保存的项目(类似于删除所有的保存的项目)
Memcache::getStats — 获取当前 Memcache 服务器运行的状态

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-10/107521p2.htm

[测试代码 ]
现在我们开始一段测试代码:

<?php
// 连接
$mem = new Memcache;
$mem->connect(“192.168.0.200”, 12000);

// 保存数据
$mem->set(‘key1’, ‘This is first value’, 0, 60);
$val = $mem->get(‘key1’);
echo “Get key1 value: ” . $val .”
“;

// 替换数据
$mem->replace(‘key1’, ‘This is replace value’, 0, 60);
$val = $mem->get(‘key1’);
echo “Get key1 value: ” . $val . “
“;

// 保存数组
$arr = array(‘aaa’, ‘bbb’, ‘ccc’, ‘ddd’);
$mem->set(‘key2’, $arr, 0, 60);
$val2 = $mem->get(‘key2’);
echo “Get key2 value: “;
print_r($val2);
echo “
“;

// 删除数据
$mem->delete(‘key1’);
$val = $mem->get(‘key1’);
echo “Get key1 value: ” . $val . “
“;

// 清除所有数据
$mem->flush();
$val2 = $mem->get(‘key2’);
echo “Get key2 value: “;
print_r($val2);
echo “
“;

// 关闭连接
$mem->close();

// 添加多台 memcached 服务器

$b = new Memcache();
$b->addServer(“10.55.38.18”,11271);
$b->addServer(“10.55.38.18”,11272);
$b->addServer(“10.55.38.18”,11273);

 

 

$arrHosts = array(‘10.10.10.11’=>’11211′,’10.10.10.12’=>’11211’);

$mc = new Memcache();
echo serialize($mc).”\n”;
foreach($arrHosts as $host=>$port) {
echo ‘start ‘.$host.”\n”;
$mc->connect($host,$port);

echo serialize($mc).”\n”;
$stats = $mc->getStats();
echo $stats[‘pid’].”\n”;

}

?>

如果正常的话,浏览器将输出:
Get key1 value: This is first value
Get key1 value: This is replace value
Get key2 value: Array ([0] => aaa [1] => bbb [2] => ccc [3] => ddd )
Get key1 value:
Get key2 value:

基本说明我们的 Memcache 安装成功,我们再来分析以下上面的这段程序。

[程序分析 ]

初始化一个 Memcache 的对象:
$mem = new Memcache;

连接到我们的 Memcache 服务器端,第一个参数是服务器的 IP 地址,也可以是主机名,第二个参数是 Memcache 的开放的端口:
$mem->connect(“192.168.0.200”, 12000);

保存一个数据到 Memcache 服务器上,第一个参数是数据的 key,用来定位一个数据,第二个参数是需要保存的数据内容,这里是一个字符串,第三个参数是一个标记,一般设置为 0 或者 MEMCACHE_COMPRESSED 就行了,第四个参数是数据的有效期,就是说数据在这个时间内是有效的,如果过去这个时间,那么会被 Memcache 服务器端清除掉这个数据,单位是秒,如果设置为 0,则是永远有效,我们这里设置了 60,就是一分钟有效时间:
$mem->set(‘key1’, ‘This is first value’, 0, 60);

从 Memcache 服务器端获取一条数据,它只有一个参数,就是需要获取数据的 key,我们这里是上一步设置的 key1,现在获取这个数据后输出输出:
$val = $mem->get(‘key1’);
echo “Get key1 value: ” . $val;

现在是使用 replace 方法来替换掉上面 key1 的值,replace 方法的参数跟 set 是一样的,不过第一个参数 key1 是必须是要替换数据内容的 key,最后输出了:
$mem->replace(‘key1’, ‘This is replace value’, 0, 60);
$val = $mem->get(‘key1’);
echo “Get key1 value: ” . $val;

同样的,Memcache 也是可以保存数组的,下面是在 Memcache 上面保存了一个数组,然后获取回来并输出
$arr = array(‘aaa’, ‘bbb’, ‘ccc’, ‘ddd’);
$mem->set(‘key2’, $arr, 0, 60);
$val2 = $mem->get(‘key2’);
print_r($val2);

现在删除一个数据,使用 delte 接口,参数就是一个 key,然后就能够把 Memcache 服务器这个 key 的数据删除,最后输出的时候没有结果
$mem->delete(‘key1’);
$val = $mem->get(‘key1’);
echo “Get key1 value: ” . $val . “
“;

最后我们把所有的保存在 Memcache 服务器上的数据都清除,会发现数据都没有了,最后输出 key2 的数据为空,最后关闭连接
$mem->flush();
$val2 = $mem->get(‘key2’);
echo “Get key2 value: “;
print_r($val2);
echo “
“;

本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-10/107521.htm

一、memcache 简介

Memcache 最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。

Memcache 官方网站:http://memcached.org/ 

二、memcache 的安装

1、下载源文件(目前最新稳定版本是 memcached-1.4.5.tar.gz)

wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz

由于 Memcache 用到了 libevent 这个库用于 Socket 的处理,所以还需要安装 libevent,

Libevent 的官网为 http://www.monkey.org/~provos/libevent/,最新稳定版本为:1.4.14b

wget http://www.monkey.org/~provos/libevent-1.4.14b-stable.tar.gz

2、安装 memcache

1)、安装 libevent

# tar xzvf libevent-1.4.14b-stable.tar.gz

# cd libevent-1.4.14b-stable

# ./configure –prefix=/usr

# make && make install

# cd ..

# ls -al /usr/lib | grep libevent(查看是否安装成功)

2)、安装 memcache

# tar xzvf memcached-1.4.5.tar.gz

# cd memcached-1.4.5

# ./configure –with-libevent=/usr

# make && make install

# ls -al /usr/local/bin/mem*   (查看是否生成 memcached 可执行程序文件)

# 备注:如果是 64 位的系统可能会报错,因为默认的库文件只会安装到 /usr/lib 下面

3、启动 memcache

# 通过 /usr/local/bin/memcached –h 查看命令选项帮助

[root@CentOS2 memcached-1.4.5]# /usr/local/bin/memcached -h

memcached 1.4.5

-p< num>      TCP port number to listen on (default: 11211)

-U< num>      UDP port number to listen on (default: 11211, 0 is off)

-s< file>    UNIX socket path to listen on (disables network support)

-a< mask>    access mask for UNIX socket, in octal (default: 0700)

-l< ip_addr>  interface to listen on (default: INADDR_ANY, all addresses)

-d            run as a daemon

-r            maximize core file limit

-u< username> assume identity of <username> (only when run as root)

-m< num>      max memory to use for items in megabytes (default: 64 MB)

-M            return error on memory exhausted (rather than removing items)

-c< num>      max simultaneous connections (default: 1024)

 

# 启动命令如下

# /usr/local/bin/memcached -d -m 10  -u root -l 172.28.5.2 -p 12000 -c 1024 –P /tmp/memcached.pid

#### 相关选项说明

-d   表示启动一个守护进程

-m 是分配给 memcached 使用的内存

-u   运行 memcached 的用户

-l    是 memcached 监听的 ip

-p    是 memcached 监听的端口

-c    memcache 运行的最大并发连接数

-P    是设置 memcache 的 pid 文件

 

三、Php 的 memcache 扩展的安装

1、windows 平台 memcache 扩展的安装

下载相应版本的 php_memcache.dll 文件,然后将该文件放到 D:\AppServ\php5\ext 目录下(路径根据 php 安装的位置不同请自行设置),然后更改相应的 php.ini 的设置,创建 <?php phpinfo();?> 的 php 文件,访问这个文件看 memcache 模块是否起作用。

2、linux 平台 memcache 扩展的安装

wget http://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz

tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5/
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config
make
make install
cd ../

修改 php.ini 文件

查找 /usr/local/php/etc/php.ini 中的 extension_dir = “./” 修改为 extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/”

并在此行后增加一行,然后保存:

extension = “memcache.so”

创建 php 文件 aaa.php, 内容如下:

<?php

Phpinfo();

?>

保存,然后访问看是否能显示 memcache 模块的信息!

Memcached 安装及启动脚本 http://www.linuxidc.com/Linux/2013-07/87641.htm

PHP 中使用 Memcached 的性能问题 http://www.linuxidc.com/Linux/2013-06/85883.htm

Ubuntu 下安装 Memcached 及命令解释 http://www.linuxidc.com/Linux/2013-06/85832.htm

Memcached 的安装和应用 http://www.linuxidc.com/Linux/2013-08/89165.htm

使用 Nginx+Memcached 的小图片存储方案 http://www.linuxidc.com/Linux/2013-11/92390.htm

Memcached 使用入门 http://www.linuxidc.com/Linux/2011-12/49516p2.htm

四、Memcache 的使用

// 使用部分是转载的

[接口介绍 ]
服务器端和客户端都安装配置好了,现在我们就来测试以下我们的成果。Memcache 客户端包含两组接口,一组是面向过程的接口,一组是面向对象的接口,具体可以参考 PHP 手册“LXXV. Memcache Functions”这章。我们为了简单方便,就使用面向对象的方式,也便于维护和编写代码。Memcache 面向对象的常用接口包括:

Memcache::connect — 打开一个到 Memcache 的连接
Memcache::pconnect — 打开一个到 Memcache 的长连接
Memcache::close — 关闭一个 Memcache 的连接
Memcache::set — 保存数据到 Memcache 服务器上
Memcache::get — 提取一个保存在 Memcache 服务器上的数据
Memcache::replace — 替换一个已经存在 Memcache 服务器上的项目(功能类似 Memcache::set)
Memcache::delete — 从 Memcache 服务器上删除一个保存的项目
Memcache::flush — 刷新所有 Memcache 服务器上保存的项目(类似于删除所有的保存的项目)
Memcache::getStats — 获取当前 Memcache 服务器运行的状态

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-10/107521p2.htm

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

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7985998
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用 AI 做了一个 1978 年至 2019 年中国大陆企业注册的查询网站 最近星哥在 GitHub 上偶然...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...