memcache缓存服务器
admin
2023-03-29 15:01:43
0

一、 MemCache 简介
MemCache 是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web 应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。 MemCaChe 是一个存储键值对的 HashMap,在内存中对任意的数据(比如字符串、对象等)所使用的 key-value 存储,数据可以来自数据库调用、 API调用,或者页面渲染的结果。 MemCache 设计理念就是小而强大,它简单的设计促进了快速部署、易于开发并解决面对大规模的数据缓存的许多难题,而所开放的 API 使得 MemCache能用于 Java、 C/C++/C#、 Perl、 Python、 PHP、 Ruby 等大部分流行的程序语言。

二,centos7.2+nginx+php+memcache+mysql
1、 安装 nginx(在 192.168.1.10 主机操作)

(1) 安装依赖包
yum -y install  pcre-devel openssl-devel
(2) 解压zlib和pcre
    tar xzf pcre-8.39.tar.gz 
tar zxf zlib-1.2.8.tar.gz
(3) 编译安装nginx

memcache缓存服务器
make && make install
(4)创建所需的用户
useradd nginx -s /sbin/nologin -M
(4) 链接命令文件
ln -s /usr/local/nginx1.14/sbin/nginx /usr/local/sbin/
(5) 开启nginx 并查看端口
memcache缓存服务器

2、 安装 php(在 192.168.1.20 主机操作)
(1) 安装依赖包
安装libmcrypt
memcache缓存服务器

yum -y install libxml2-devel libcurl-devel openssl-devel bzip2-devel
(2) 编译安装php
memcache缓存服务器
make && make install
(3)复制php.ini配置文件,并修改
memcache缓存服务器
修改/etc/php.ini 文件,将 short_open_tag 修改为 on,修改后的内容如下:
short_open_tag = On //支持 php 短标签
Vim /etc/php.ini
memcache缓存服务器

(3) 创建php-fpm服务脚本

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

(4)提供 php-fpm 配置文件并编辑:
memcache缓存服务器

修改164  listen = 0.0.0.0:9000
优化一下 pm.max_children = 50
            pm.start_servers = 5
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35

(4) 开启php并查看端口
memcache缓存服务器

3.制作测试页面
Nginx
(1)修改nginx配置文件 65
memcache缓存服务器
(2)重启nginx
nginx -s reload


php
(1) 创建所需文件夹
mkdir -p /var/www/bdqn
(2) 创建所需网页
vim /var/www/bdqn/index.php

浏览器测试
memcache缓存服务器

  1. 安装 memcached 服务端(在 192.168.1.30 主机操作)
    memcached 是基于 libevent 的事件处理。 libevent 是个程序库,它将 Linux 的 epoll、 BSD 类操作系统的 kqueue 等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥 I/O 的性能。 memcached 使用这个 libevent 库,因此能在 Linux、 BSD、 Solaris 等操作系统上发挥其高性能。首先先安装 memcached 依赖库 libevent
    (1) 安装依赖包libevent
    memcache缓存服务器
    (2) 编译安装memcached
    memcache缓存服务器
    (3) 链接命令文件
    ln -s /usr/local/memcached/bin/memcached /usr/local/bin/
    (4) 开启memcached并查看端口

    memcache缓存服务器

5.在php上安装mecache客户端
(1)创建 ./configure
memcache缓存服务器
(3) 编译安装memcache
memcache缓存服务器
./configure --enable-memcache --with-php-config=/usr/local/php1.10/bin/php-config && make && make install
配置环境变量:
进入用户宿主目录,编辑.bash_profile,为系统环境变量 LD_LIBRARY_PATH 增加新的目录,
需要增加的内容如下:
extension=/usr/local/php1.10/lib/php/extensions/no-debug-zts-20131226/memcache.so

memcache缓存服务器
(4) 重启php
/etc/init.d/php-fpm restart
(5) 浏览器测试
memcache缓存服务器

memcache缓存服务器

(6) php添加一个测试网页
memcache缓存服务器

connect('192.168.1.30', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."
"; $tmp_object = new stdClass; $tmp_object->str_attr = 'test'; $tmp_object->int_attr = 123; $memcache->set('key', $tmp_object, false, 900) or die ("Failed to save data at the server"); echo "Store data in the cache (data will expire in 900 seconds)
"; $get_result = $memcache->get('key'); echo "Data from the cache:
"; var_dump($get_result); ?>

(7) memcached 安装telnet
yum -y install telnet
(8) 浏览器测试
memcache缓存服务器
(9) memcached上telnet测试
memcache缓存服务器

  1. 使用 memcache 实现 session 共享
    Php
    (1)配置 php.ini 中的 Session 为 memcache 方式。
    vim /etc/php.ini末尾添加
    session.save_handler = memcache
    session.save_path="tcp://192.168.31.250:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

    (2)测试 memcache 可用性
    在 web 服务器上新建/var/www/bdqn/test1.php 文件

    vim /var/www/bdqn/test1.php   添加
    ";
    echo "now_time:".time()."
    "; echo "session_id:".session_id()."
    "; ?>

    (3)重启php
    /etc/init.d/php-fpm restart
    (5) 浏览器测试

memcache缓存服务器

7、测试 memcache 缓存数据库数据
(1) 在 Mysql 服务器上创建测试表
memcache缓存服务器
memcache缓存服务器

(2)php上制作测试页

vim /var/www/bdqn/test3.php添加

connect($memcachehost,$memcacheport) or die ("Could not connect");
$query="select * from test1 limit 10";
$key=md5($query);
if(!$memcache->get($key))
{
$conn=mysql_connect("192.168.1.50","xgp","123.com");
mysql_select_db(testdb1);
$result=mysql_query($query);
while ($row=mysql_fetch_assoc($result))
{
$arr[]=$row;
}
$f = 'mysql';
$memcache->add($key,serialize($arr),0,30);
$data = $arr ;
}
else{
$f = 'memcache';
$data_mem=$memcache->get($key);
$data = unserialize($data_mem);
}
echo $f;
echo "
"; echo "$key"; echo "
"; //print_r($data); foreach($data as $a) {echo "number is $a[id]"; echo "
"; echo "name is $a[name]"; echo "
"; } ?>

(3)浏览器测试
memcache缓存服务器
(4)memcached上telnet测试

memcache缓存服务器

相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...