Linux学习笔记---LNMP部署及memcache缓存服务器

这篇博文主要来讲memcache缓存服务器。
一) memcache简介:
MemCache 是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态 Web 应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数, 从而提高了网站访问的速度。
MemCache 实现原理:

首先要说明一点,MemCache 的数据存放在内存中
1、访问数据的速度比传统的关系型数据库要快,因为 Oracle、MySQL 这些传统的关系型数 据库为了保持数据的持久性,数据存放在硬盘中,IO 操作速度慢
2、MemCache 的数据存放在内存中同时意味着只要 MemCache 重启了,数据就会消失
3、既然 MemCache 的数据存放在内存中,那么势必受到机器位数的限制,32 位机器最多只 能使用 2GB 的内存空间,64 位机器可以认为没有上限
MemCache 的官方网站为 http://memcached.org/
二) Memcache 的工作流程:
在这里插入图片描述
1、检查客户端的请求数据是否在 memcached 中,如果有,直接把请求数据返回,不再对数 据库进行任何操作,路径操作为①②③⑦。
2、如果请求的数据不在 memcached 中,就去查数据库,把从数据库中获取的数据返回给客 户端,同时把数据缓存一份到 memcached 中(memcached 客户端不负责,需要程序明确实 现),路径操作为①②④⑤⑦⑥。
3、每次更新数据库的同时更新 memcached 中的数据,保证一致性。
4、当分配给 memcached 内存空间用完之后,会使用 LRU(Least Recently Used,最近最少使 用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉最近未使用的数据。
三)memcache安装:
**Memcache 的安装分为两个过程:**memcache 服务器端的安装和 memcached 客户端的安装。 所谓服务器端的安装就是在服务器(一般都是 linux 系统)上安装 Memcache 实现数据的存 储。
所谓客户端的安装就是指 php(或者其他程序,Memcache 还有其他不错的 api 接口提供) 去使用服务器端的 Memcache 提供的函数,需要 php 添加扩展。

四)环境案例:
centos7.2+nginx+php+memcache+mysql
在这里插入图片描述
1:首先我们先部署lnmp环境:
(1)Nginx服务器安装:
下载 nginx 的源码包:http://nginx.org/download
解压源码包:
在这里插入图片描述
在这里插入图片描述
会发现缺少依赖,我们安装缺少的依赖就可以:
[root@localhost nginx-1.14.0]# yum -y pcre-devel
[root@localhost nginx-1.14.0]# yum -y install zlib-devel
[root@localhost nginx-1.14.0]# ./configure
安装好依赖直接:(直至服务开启)
[root@localhost nginx-1.14.0]#make && make install
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)安装php服务器:(之前博文讲有安装php服务器的步骤这里不再介绍;讲一下配置文件的更改)
[root@www php-5.6.27]# vi m /usr/local/php5.6/etc/php-fpm.conf
修改内容如下:

pid = run/php-fpm.pid
listen =127.0.0.1:9000
pm.max_children = 300
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers =50
启动 php-fpm 服务:(默认端口9000)
[root@phpserver ~]# service php-fpm start
Starting php-fpm done
在这里插入图片描述
(4)安装memcached服务端:
memcached 是基于 libevent 的事件处理。libevent 是个程序库,它将 Linux 的 epoll、BSD 类 操作系统的 kqueue 等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能 发挥 I/O 的性能。 memcached 使用这个 libevent 库,因此能在 Linux、BSD、Solaris 等操作 系统上发挥其高性能。
首先先安装 memcached 依赖库 libevent
在这里插入图片描述
在这里插入图片描述
编译完成后安装;
在这里插入图片描述
安装 memcached:
在这里插入图片描述
在这里插入图片描述
[root@localhost memcached-1.4.33]# make && make install
检测是否成功安装
在这里插入图片描述
通过以上操作就很简单的把 memcached 服务端编译好了。这时候就可以打开服务端进行工作 了。
配置环境变量:
进入用户宿主目录,编辑.bash_profile,为系统环境变量 LD_LIBRARY_PATH 增加新的目录, 需要增加的内容如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
/usr/local/memcached/bin/memcached -d -m 2048 -l 192.168.235.104 -p 11211 -u root -c 10240 -P /usr/local/memcached /memcached.pid
启动参数说明:
-d 选项是启动一个守护进程。
-m 分配给 Memcache 使用的内存数量,单位是 MB,默认 64MB。
-l 监听的 IP 地址。(默认:INADDR_ANY,所有地址)
-p 设置 Memcache 的 TCP 监听的端口,最好是 1024 以上的端口。
-u 运行 Memcache 的用户,如果当前为 root 的话,需要使用此参数指定用户。
-c 选项是最大运行的并发连接数,默认是 1024。
-P 设置保存 Memcache 的 pid 文件。
-M 内存耗尽时返回错误,而不是删除项
-f 块大小增长因子,默认是 1.25
-n 最小分配空间,key+value+flags 默认是 48
-h 显示帮助
查看服务:
在这里插入图片描述
设置防火墙(或关闭防火墙,)
[root@memcache ~]# firewall-cmd --permanent --add-port=11211/tcp
success
[root@memcache ~]# firewall-cmd --reload
Success
(5)php与memcached服务器沟通,在php上操作:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
重启php服务,浏览器方式test1.php页面;
在这里插入图片描述
(6)更改nginx服务器的配置文件;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在/下创建一个www目录;
Php服务器上也创建一个www目录并编辑网页:

在这里插入图片描述
在这里插入图片描述
(7)在php服务器上安装memcache客户端:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重启php服务,浏览器方式test1.php页面;
在这里插入图片描述
复制session_id用于telnet连接;
使用telnet连接memcached(这里php服务器上没有telnet服务先安装telnet)
在这里插入图片描述
在这里插入图片描述
(8)memcache服务端连接mysql服务器:
在mysql上创建测试数据:

在这里插入图片描述
mysql> grant select on testdb1.* to user@’%’ identified by ‘123456’;我创建的是user用户密码123456
回到php服务器,在/www目录下编辑test2.Php文件
在这里插入图片描述
在这里插入图片描述
访问测试页面:
在这里插入图片描述
如果出现 mysql 表示 memcached 中没有内容,需要 memcached 从数据库中取得 再刷新页面,如果有 memcache 标志表示这次的数据是从 memcached 中取得的。 memcached 有个缓存时间默认是 1 分钟,过了一分钟后,memcached 需要重新从数据库中 取得数据

在这里插入图片描述
查看 Memcached 缓存情况 我们需要使用 telnet 命令查看
在这里插入图片描述
总结:
当我们访问mysql数据库的时候如果并发大的话会给mysql数据库带来负载;安装memcache服务器;可以减轻后端mysql服务器的负载,但需要在php服务器上安装memcache客户端;用来连接memcache服务器;这时当客户端在访问mysql数据库时会先访问到数据库的内容且访问内容会缓存在memcache服务器上;当用户在次访问相同内容时;会直接访问至memcache服务器所缓存的内容。这样提高了网站的访问速度。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值