memcache-01 MC介绍和安装
概念引入
memcache是一款开源、高性能、分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对Database的访问来加速web应用程序。它是一个基于内存的“键值对”存储,用于存储数据库调用、API调用或页面引用结果的直接数据,如字符串、对象等。
memcache通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动的速度,大幅降低数据库负载。
特点
1)简单key-value存储
服务器不关心数据本身的意义及结构,只要是可序列化数据即可。存储项由“键、过期时间、可选的标志及数据”四个部分组成;
2)功能的实现一半依赖于客户端,一半基于服务器端
客户负责发送存储项至服务器端、从服务端获取数据以及无法连接至服务器时采用相应的动作;服务端负责接收、存储数据,并负责数据项的超时过期;
3)各服务器间彼此无视
不在服务器间进行数据同步;
4)O(1)的执行效率
5)清理超期数据
默认情况下,Memcached是一个LRU(Least Recently Used)缓存,同时,它按事先预订的时长清理超期数据;但事实上,memcached不会删除任何已缓存数据,只是在其过期之后不再为客户所见;而且,memcached也不会真正按期限清理缓存,而仅是当get命令到达时检查其时长;
另外,内容容量达到指定值之后,就基于LRU算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此并未过多考虑数据的永久性问题。
6)存储方式
为了提高性能,memcached中保存的数据都存储在内存中,重启操作系统、重启memcached、断电等均会导致数据全部消失。
7)通信分布式
memcached尽管是“分布式”缓存服务器,但是服务器端并没有分布式功能。各个memcached不会互相通信以共享信息,分布式取决于客户端的实现。
MC缓存原理
1)浏览器首次访问应用服务器时,应用服务器先在memecached查找所需要的数据,可是memecached里却没有相应数据,因此应用服务器再去RDBMS(关系型数据库)中取数据,将数据保存到memecached,同时将数据显示到网页上。(下图紫色箭头)
2)浏览器第二次以及二次之后,应用服务器直接在memecached查找所需要的数据,并且显示早网页上。(下图绿色箭头)
memcached命令分类
Memcached提供了为数不多的几个命令来完成与服务器端的交互,这些命令基于memcached的协议实现。
1)存储类命令:set, add, replace, append, prepend
2)获取数据类命令:get, delete, incr/decr
3)统计类命令:stats, stats items, stats slabs, stats sizes
4)清理命令: flush_all
安装memcached
1、安装
1 | [root@localhost ~]# yum install -y memcached |
如上图,启动memcached之后,其默认对应端口11211会处于监听状态。
2、memcached的常用选项说明
1 | [root@localhost ~]# memcached -h |
3、配置文件
1 | [root@localhost ~]# cat /etc/sysconfig/memcached |
4、相关文件
1 | [root@localhost ~]# rpm -ql memcached |
连接memcached
命令
1 | telnet HOST PORT |
实例1
1 | [root@localhost ~]# telnet localhost 11211 |