> 文档中心 > 【中间件从青铜到王者】第一篇: memcache初相识

【中间件从青铜到王者】第一篇: memcache初相识

大家好,我是互联网老辛,这是我参与更文挑战的第1天;

今天主要来分享关于memcache的介绍和部署,以及简单的使用,每天一篇,让你系统学习中间件

memcache的介绍

memcahce 被称为分布式的高速缓存系统,在一些大型的,需要频繁被访问的数据库网站上,可以有效提升访问速度。

目前应用场景有两类:

  1. 作为数据库的前段缓存:
    Memcached(内存是易失性存储), redis, memcachedb, HANA

  2. 作为session服务器

工作流程

【中间件从青铜到王者】第一篇: memcache初相识

在有缓存的情况下,请求经过web服务器到达memcache,查看,如果有缓存直接返回结果,不会去访问数据库。

【中间件从青铜到王者】第一篇: memcache初相识

面试题: memcache与redis的区别

从存储方式上来说: memcache把数据全部存在内存当中,断电后会挂掉,数据不能超过内存大小。
redis的优势是有部分数据保存在硬盘上,这样能保证数据的持久化,支持数据的持久化。

从数据支持类型上来看,redis在数据支持上要比memcache要多。

但memcache最大的优势是支持的平台比较多,redis目前只能在linux上用。

安装memcache

安装libevent

上传软件包: libevent-2.1.12-stable.tar.gz

解压

[root@itlaoxin164 ~]# tar zxvf libevent-2.1.12-stable.tar.gz[root@itlaoxin164 ~]# cd libevent-2.1.12-stable[root@itlaoxin164 libevent-2.1.12-stable]# ./configure  --prefix=/usr/local/libevent --disable-openssl #检查系统编译环境

安装

[root@itlaoxin164 libevent-2.1.12-stable]# make  -j  4 [root@itlaoxin164 libevent-2.1.12-stable]# make install  #安装

查看已经安装的文件:

[root@itlaoxin164 libevent-2.1.12-stable]# ls /usr/local/libevent/
bin include lib

安装memcache

[root@itlaoxin164 ~]# tar zxvf memcached-1.6.9.tar.gz [root@itlaoxin164 ~]# cd memcached-1.6.9[root@itlaoxin164 memcached-1.6.9]# ./configure  --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/[root@itlaoxin164 memcached-1.6.9]# make -j 4[root@itlaoxin164 memcached-1.6.9]# make install[root@itlaoxin164 memcached-1.6.9]# echo $?0

启动memcached

[root@itlaoxin164 memcached-1.6.9]# /usr/local/memcached/bin/memcached -u root -p 11211 -l 192.168.1.164 -P /var/run/memcached.pid -m 128m -c 2048 -d[root@itlaoxin164 memcached-1.6.9]# echo $?0

参数的介绍

参数 作用
-u user
-p port
-l listen
-P pid
-m 内存缓存大小
-c 最大并发
-d 作为守护进程在后台运行

查看端口:

[root@itlaoxin164 ~]# netstat -antup | grep 11211tcp 0      0 192.168.1.164:11211   0.0.0.0:*     LISTEN      9801/memcached      udp 0      0 192.168.1.164:11211   0.0.0.0:*   9801/memcached   

测试,连接memecached 读写数据

#使用telnet连接memcache,进行测试语法:telnet IP 11211[root@itlaoxin164 ~]# rpm -ivh /mnt/Packages/telnet-0.17-47.el6.x86_64.rpm warning: /mnt/Packages/telnet-0.17-47.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing...  ########################################### [100%]   1:telnet   ########################################### [100%]

-m 分配内存
-p 监听端口
-d 守护进程
-c 连接数
-u 运行用户
-l 监听ip

实战:使用telnet连接memcache,进行测试

[root@itlaoxin164 ~]# telnet 192.168.1.164 11211Trying 192.168.1.164...Connected to 192.168.1.164.Escape character is '^]'.set name 4 300 6mkingeSTOREDget nameVALUE name 4 6mkingeENDquitConnection closed by foreign host.
参数 说明
mkinge 输入内容
get name get 命令读取缓存数据
END 该标志代表存入成功
quit 退出
STORED # 该标志代表是存入成功

set name 4 300 6
#往memcached 缓存中存储一个键值,标志4 ,缓存时间300秒,字符串长度是6个字节

总结

预告:明天我们来分享使用memcache 为MySQL加速