ubuntu nginx php mysql memcached_nginx+php+memcached

1 memcached介绍:

Memcached 是一个开源的、支持高性能、高并发的分布式内存缓存系统。由C语言编写,总共2000多行代码 mem(内存)Cache(缓存)d(守护进程)

Memcached 服务分为服务端和客户端两部分,其中服务端的名字是memcached

客户端的名字 memcache

Memcached 软件诞生于2003年,最初由livejournal的brad fitzpatrick 开发协议简单,部署方便

memcached的作用

传统场景,多数web应用都将数据保存到关系型数据库中,web服务器从中读取数据并在浏览器中显示,但是随着数据量的增大吗,访问集中,关系型数据库的负担就会出现加重、相应缓慢、导致网站打开延迟等问题,影响用户一体验。

使用memcached的主要目的是,通过在自身内存中的缓存关系型数据库的查询结果,减少数据库自身被访问的次数,以提高动态web应用的速度,提高网站架构的并发能力和可扩展性

web读数据

1 读取memcached的数据,如果存在,则显示结果

2 如果memcached没有数据,程序会直接读取数据库的数据,数据库返回结果,程序将返回的结果存入memcached缓存中

2 Memcached 的特性

1 协议简单:采用文本行的协议,能通过telent/nc等命令直接操作memcached服务存储数据

2 支持epoll/kqueue 异步I/O模型,使用libevent作为时间处理通知机制,

Libevent 会将事封装成接口,提供给memcached使用

NGINX也支持这种模型

3 key/value 键值数据类型(哈希表)

4 全内存缓存,效率高

当内存中数据容量那个达到服务器启动时设定的内存值,就会自动使用LRU算法删除过期的缓存数据,也可以在存放数据时对存储的数据设置过期时间,这样过期后数据就会自动被清除,memcached服务本身不会监控数据过期,而是在访问key的时候的时间戳判断是否过期

5 可支持分布式集群

memcached没有向mysql那样的主从同步方式,分布式memcached 集群的不同服务器之间是互不通信的,每一个节点都是独立存取数据,并且数据内容也应该是不一样的,通过对web应用端的程序设计或者通过支持hash算法的负载均衡软件,可以让memcached支持大规模海量分布式存储集群应用。

二 nginx+memcached+PHP(此处memcached是PHP的缓存)

1 修改环境变量使其可以支持phpize

ca09920c60dff531eaa58f9882272f6c.png

d181596bfd4dd2010060b3dc1a897ddb.png

刷新

3fcd76eee78848cb0c8c3eb68d6580d6.png

2 安装memcache

177e891804badcd5120fd6c8384e57cc.png

1 解压

93c7abd45f380dc81e03bc682a8661c1.png

2 使用phpzie

ddebc5221b4b1cd02c62d63c7b1a9e61.png

3 进行configure

62e34be2a599f67efba1c39c3e6ca519.png

4 编译和安装

02f865d8c69657563a3aa601d231fb94.png

5 加载相应的memcache 模块到php中

0db7e5a532363b0f5927155a310d95e3.png

82ad0c9e455c51d93a1022f1351f7fba.png

7d7e6c676190c82ce9ab6d926e8e5505.png

f6a56746da202e9fada348d8884d87cd.png

6 在php中memcache没有启动的情况下进行访问

517944483ce4614843366c9890c83966.png

7 复制memcache 相关的数据包

d3661fce34a01b2dbdb79e3abbc120dd.png

4cbcf3dd7c63fb9bc2956976eb909c2c.png

8 修改管理用户和链接的主机

233dd0f9c5affdf08fec74617c4f5959.png

7bdcfe8f53bf7f520b6d5cb99838d288.png

9 重启php使其加载memcache动态模块

bd359e23ec517799ff993be12ba40d12.png

10 进行访问,查看上述配置是否正确

a7f9a426543ea5391faeac31e7bbfadd.png

11 目前没有访问情况下的占比

7b15348b98c6f5d1350da794b6d22934.png

3安装memecached 服务器

1 安装

b5d00a64d75876afb2cf70d00e77d025.png

2 启动并查看其监控的端口 11211

1850880fbdf9d2e04f3b032bd8920494.png

4 在客户端进行压力测试

acd63d4243cf05b2000bd0b27e341987.png

服务端查看缓存情况

505237003f874071c78345c30cd3981b.png

二 nginx+memcached+PHP (此处memcached是nginx 的缓存)

此时需要有支持memcache模块的nginx 二次开发包

下载此开发包

1 关闭原来的nginx

3ed0162a1fe7169a47994a6d249a86cc.png

2 下载openresty 和 nginx-sticky-module-ng.tar.gz包

解压

ce6b1bbe14ec10ec29ddd4b028140da6.png

6313c28edecbbf5d2f3aee837eb3e64d.png

指定其路径和增加的模块

bd8e89df52fb0d5a522347831323c647.png

编译和安装

3207b7a8d899c9d81f125a3ccd4884a8.png

274b0a0587a2758c05af07c15d670cab.png

3 基本优化

9c8460611a86dd815d6443c3a98aedfe.png

db06f927f6454e555163204db8b6bb60.png

4 配置memcahe支持模块

8c34967cc47aa126fee9436b4c048ff5.png

54cac0cc2e6dcba406d03e2002ed2cb6.png

d7adcf957cb87811ef35a11c9bf4a059.png

重启服务

75444cc99d275b78e26c17b1354f0c67.png

进行压力测试

8ad1580a739f5f01660a4adecf70b03c.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值