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

极客运维之家 2021-12-09 21:08:31

今天主要来分享关于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加速

...全文
91 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-大数据 发布问题, 以便更快地解决您的疑问

16,207

社区成员

发帖
与我相关
我的任务
社区描述
面向想学习云原生运维的朋友提供交流学习园地,社区管理员 互联网老辛 将长期面向社区组织技术交流及直播活动。 欢迎各位加入极客运维之家联盟,本社区诚邀各位踊跃投稿。
运维开发云计算python 个人社区 北京·海淀区
社区管理员
  • 互联网老辛
  • 我是沐风晓月
  • IT民工金鱼哥
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧