MemCached 缓存技术
什么事MemCached
Memcache 是一套开源,高性能的分布式的内存对象缓存系统,目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著 。
Memcache 将所有数据存储在内存中,并在内存里维护一个统一的巨
大的 Hash 表,它能存储任意类型的数据,包括图像、视频、文件以及数
据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中
读取,从而大大提高读取速度。
为什么要有 MemCached
请大家先看一个问题,这个问题在大并发,高负载的网站中必须考虑!
大家思考如何让速度更快
解决方案
传统的RDBMS
页面静态化
MemCached 缓存技术
MemCache 的基本原理和体系结构
简单来说,memcached就是在内存中维护一张巨大的hash表,通过自己一套路由算法来维护数据的操作
MemCached 数据的存储方式和过期
1 、数据存储方式:Slab Allocation 即:按组分配内存
(1)每次先分配一个 Slab,相当于一个 page,大小 1M。
(2)然后在 1M 的空间里根据内容再划分相同大小的 chunk
(3)优点是:最大限度的利用内存,避免产生内存碎片
(4)缺点是:会造成内存的浪费
2.数据过期方式
(1)懒过期方式(Lazy Expiration)memcached 内部不监视数据是否过期,而是 get 时查看记录时间,检查是否已经过期,这叫惰性过期。
(2)LRU 算法:采用最近最少使用算法淘汰内存中的数据
MemCached 的安装和部署
实验环境:
OracleLinux-R6-U6-Server-i386-dvd.iso
memcached-1.4.25.tar.gz
memcached-1.2.8-repcached-2.2.tar.gz
libevent-2.0.21-stable.tar.gz
spymemcached-2.10.3.jar
1 、安装 GCC 编译器所需的 rpm 包
rpm -ivh libgomp-4.4.7-11.el6.i686.rpm
rpm -ivh libstdc++-devel-4.4.7-11.el6.i686.rpm
rpm -ivh kernel-headers-2.6.32-504.el6.i686.rpm
rpm -ivh glibc-headers-2.12-1.149.el6.i686.rpm
rpm -ivh glibc-devel-2.12-1.149.el6.i686.rpm
rpm -ivh ppl-0.10.2-11.el6.i686.rpm
rpm -ivh cloog-ppl-0.15.7-1.2.el6.i686.rpm
rpm -ivh mpfr-2.4.1-6.el6.i686.rpm
rpm -ivh cpp-4.4.7-11.el6.i686.rpm
rpm -ivh gcc-4.4.7-11.el6.i686.rpm
rpm -ivh gcc-c++-4.4.7-11.el6.i686.rpm
rpm -ivh telnet-0.17-48.el6.i686.rpm
2 、安装 Libevent
*、确认是否已经安装?并删除旧版本
//检查在虚拟机上是否事先存在libevent
rpm -qa | grep libevent
//删除已经存在的libevent --nodeps 表示再删除的时候 并不删除它的相关依赖
rpm -e libevent-1.4.13-4.el6.i686 --nodeps
//解压文件夹
tar -zxvf libevent-2.0.21-stable.tar.gz
//安装到文件夹 文件夹 应该事先去创建好
//安装到/root/training/libevent 目录
./configure --prefix=/root/training/libevent
//一次执行 make 和 make install 命令 开始安装
make
make install
安装 MemCached
[root@linux112 memcached-1.4.25]# ./configure prefix=/root/training/memcached --with-libevent=/root/training/libevent
//然后执行 make ----> make install 命令
4启动 MemCached :memcached -h 帮助信息
启动命令:
./memcached -u root -d -m 128
-p:指定端口 默认:11211
-u:指定用户名(root 用户必须使用该选项)
-m:分配的内存,默认:64M
-c:最大并发连接,默认 1024
-d:启动一个守护进程
安装好之后需要使用到linux的 telent 命令 需要去光盘上去安装
将光盘挂载到虚拟机上
进入到光盘 Packages目录下 安装telent
//查看光盘中的 telnet
[roo@linux112 Packages]$ ls | grep 'telnet.*'
//客户端
telnet-0.17-64.el7.x86_64.rpm
//服务器端 我们需要安装服务器端
telnet-server-0.17-64.el7.x86_64.rpm
安装客户端 telnet
rpm -ivh telnet-0.17-64.el7.x86_64.rpm
接下来就可以操作 memcache了