Memcached

Memcached默认缓解数据库读压力,纯内存缓存

在这里插入图片描述Memcached_第1张图片Memcached_第2张图片Memcached_第3张图片Memcached_第4张图片Memcached_第5张图片1.挂载本地挂光盘
mount /dev/sr0 /media/cdrom
下载wget这个命令,之后再公网上下载支持包
wget -O /etc/yum.repos.d/163.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y clean all
yum makecache
之后使用yum命令直接下载
在这里插入图片描述在这里插入图片描述yum -y install memcached
Memcached_第6张图片参数解释:
-d:作为守护进程来运行
-m:分配给Memcached的内存。这里是10M.
-u: 运行Memcached的用户。
-l:Memcached监听的IP地址。
-p:Memcached监听的端口。
-c: 最大的并发连接数 默认为1024.
-P: 保存进程Id到指定的文件,只有在d使用的时候才有意义。

  • t:使用的线程数(默认:4)
  • R:每个连接可处理的最大请求数
    • f:增长因子 page里面chunk的增长倍率(默认为:1.25)
  • n:chunk的最小空间。(默认为:48. chunk自身数据结构 key flags expiration time占用48个字节,因此一个chunk实际消耗的内存是n+48)
    • U: 监听UDP端口 0表示不监听(默认为11211)
  • s:监听unix套接字路径
  • a:UNIX套接字访问掩码,八进制数字(默认0700)
  • r:最大核心文件限制。
  • M:内存用光时报错(不会删除数据)
  • k:锁定所有内存页。 可以锁定内存的上限。
    Memcached_第7张图片在这里插入图片描述Memcached_第8张图片Memcached_第9张图片

memcached单实例关闭的话可以直接使用kill或pkill直接杀就可以了
Memcached_第10张图片Memcached_第11张图片

需要使用Memcached的时候需要先去找开发询问好具体数值之后再一次写入数值

Memcached缓存PHP扩展插件安装

在这里插入图片描述

Memcached的各种优化

提高Memcached访问命中率是优化的最关键指标

例如:每次新增数据到数据库的同时,就将数据写入或者复制一份到Memcahced里面,然后从业务逻辑上让程序优先读缓存,没有数据再查数据库

提高内存利用率,减少内存浪费

1.减少chunk内存空间浪费的调优方法为根据业务数据大小,利用-n参数设定chunk的初始值,以及-fvans胡factor增长因子设置chunk的大小尽可能接近业务数据大小
2.减少slab的浪费,设定slab的大小为chunk的整数倍
3.采用一致性哈希分布式缓存集群架构

Memcached服务再大型站点中的架构优化

1.大型网站的架构设计原则

当访问量增大时,再整个网站集群架构中最先出现瓶颈的几乎都是后端的数据库或用于存储的服务器,在企业生产中应尽量把用户的访问请求往整个网站架构的最前面推,即当用户请求数据时,越时在靠近用户返回数据,效果越好

2.大型网站的数据库架构常见设计

为了缓解应用对数据库的高并发访问压力,大型网站都会在数据库成配置数据读写分离,并提供读的数据库做负载均衡,逻辑图如下:
Memcached_第12张图片

由于访问数据库读写的磁盘,所以,对于并发的业务场景,上述的读写分离的架构还是远远解决不了问题的,根据离访问用户越近效率越高以及用内存代替磁盘的架构思想,可以在数据库架构的前端部署Memcached服务作为缓存区,最大限度的把对数据库查询信息保存在Memcached服务器内存中,这样前端的应用服务就能够迅速的从Memcached中读取到原本在数据库中才能读取到数据,从而加快了网站的访问速度

分布式Memcached缓存服务架构

Memcached_第13张图片Memcached_第14张图片Memcached_第15张图片

分布式缓存集群设计思想

Memcached_第16张图片

分布式Memcached缓存集群的调度算法

Memcached_第17张图片Memcached_第18张图片

Memcached在急群众session共享案例

以下是PHP Web环境集群的session共享存储设置

因为php默认是把session放在本地的
Memcached_第19张图片Memcached_第20张图片Memcached_第21张图片Memcached_第22张图片

Memcacned在集群中的session共享存储的优缺点

Memcached_第23张图片

对于上面的缺点解决思路如下

Memcached_第24张图片

Memcached的特点:

1.部署极其简单
2.支持gao并发,高性能(比redis快)
3.通过程序或者负载均衡可以实现分布式
4.仅为内存缓存,重启服务数据丢失(缺点)
Memcached_第25张图片

Memcachedb的特点

1.高性能读写基于key-value的对象
2.基于事务的高效存储
3.基于同步的高可用存储
4.Memcache兼容协议(兼容Memcache代码)

你可能感兴趣的:(Memcached)