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

Posted 互联网老辛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中间件从青铜到王者第一篇: memcache初相识相关的知识,希望对你有一定的参考价值。

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

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

memcache的介绍

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

目前应用场景有两类:

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

  2. 作为session服务器

工作流程

image.png

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

image.png

面试题: 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

参数的介绍

参数作用
-uuser
-pport
-llisten
-Ppid
-m内存缓存大小
-c最大并发
-d作为守护进程在后台运行

查看端口:

[root@itlaoxin164 ~]# netstat -antup | grep 11211
tcp        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: NOKEY
Preparing...                ########################################### [100%]
   1:telnet                 ########################################### [100%]

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

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

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

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

总结

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

以上是关于中间件从青铜到王者第一篇: memcache初相识的主要内容,如果未能解决你的问题,请参考以下文章

Numpy从青铜到王者第一篇

C++从青铜到王者第一篇:C++入门

Linux从青铜到王者第一篇:Linux常见指令

Linux从青铜到王者第十一篇:Linux进程间信号第一篇

设计模式从青铜到王者第一篇:软件设计原则与SOLID原则

Scrapy从青铜到王者第一篇:Scrapy理解