Memcached集群的使用,美团架构师深入讲解Java开发

本文主要介绍了Memcached作为分布式缓存的适用场景、与其他缓存产品的比较,特别是与Redis的对比,以及如何在Java开发中安装和使用Memcached。强调了其无数据持久化和集群仅实现数据分库的特点,并提供了安装和启动Memcached的步骤。
摘要由CSDN通过智能技术生成
  • 互不通信的Memcached之间具有分布特征 ;

  • 没有安全机制。

这些特性其实就把memcached的有点缺全部说到了。

本质上是一个内存的key-value缓存这个没什么好说的,这是nosql数据库的标准特点。

协议简单,后面学了客户端的时候会了解,Redis是RESP协议,在RESP里面描述KEY的长度,KEY的值,VALUE的长度,VALUE的值,而在Memcached里面。呵呵哒,协议简单是简单,至于麻不麻烦后面学客户端同学们会有深刻的体会,在这先卖个关子。

其他的,这就不做解释了,同学们一看就明白。

适合和不适合的场景

再来看下memcached的使用场景,什么情况下适合用memcached什么情况下又不适合呢?

memcached适合变化频繁,查询频繁,重点是不是要入库的场景,为啥?它没法持久化。

还有就是变化不频繁,但查询频繁的数据,最后就是读多写少的场景,尤其是电商场景中用于页面数据的缓存,这是memcached适合的场景。

pv值不高,不考虑使用,什么叫pv? 就是page view页面展示次数,如果一些页面都没什么访问量就不要考虑memcached了。

变化频繁且需要入库,这个就直接不要考虑memcached了,为啥?它没法持久化呗。

再就是过大的数据不适合放在memcached中,这个也好理解。

分布式缓存产品比较

首先来看下线程模型,Redis是单进程单线程的模式,而memcached是单进程多线程,这肯定memcached性能比redis要好那么一点,这样的差距反应在QPS/TPS的比较中,不过这个差别也不是特别的大。

没错,这么一比较memcached也并不是一无是处,但这也就是memcached唯一的可圈可点之处了。

其他的基本redis超过memcached一大截。

集群比较

当然现在还讲到安装,更没讲到memcached集群,不过同学们可以先来看下,首先回顾下redis集群,不管是redis中的哨兵还是cluster集群,服务与服务直接是可以有数据的同步的,master的节点数据会通过slaveof的配置参数进行同步,如下图所示。

再来看下memcached,memcached肯定也是可以支持集群的,但他的集群仅仅体现再数据的分库中,memcached内存有限制是吧?我用多个memcached来存不就可以了。memcached节点之间是不会进行任何通信的,更别说什么master与slave机制了,他本身也不支持持久化,服务重启数据就丢了,所以高可用什么的想都不要想,他不支持,如下图所示。

数据库流行度排行

这个图是2018年的最新数据,关系型数据库就不说了,重点就来看下redis和memcached这两个

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

nosql所在得位置,redis还不错。比较汗颜得就是memcached了。我记得2017年我就看过这数据库他排24名,现在2019年了,依然不温不火,排在24名,有点小尴尬!

Memcached安装

准备工作

在linux根目录创建soft文件夹(根据自己习惯)

mkdir /soft

在soft目录里面上传课件里面的两文件

libevent-2.1.8-stable.tar.gz

memcached-1.5.12.tar.gz

安装libevent

安装Memcached应该先安装好libevent依赖,在soft目录里面执行命令

tar -xzvf libevent-2.1.8-stable.tar.gz

进入libevent的目录,开始安装libevent

./configure -prefix=/soft/libevent

make

make install

通过上述命令,libevent已经安装到/soft/libevent目录了

安装Memcached

在soft目录解压上传的memcached

tar -zxvf memcached-1.5.12.tar.gz

注意:编译的时候需要指定动态链接库,需要linux把libevent/lib目录加载进来,下面的步骤特别重要

vi /etc/ld.so.conf

在ld.so.conf目录中增加libevent/lib所在目录,wq保存退出

增加(请根据libevent实际安装目录设置)

/soft/libevent/lib

执行下面命令让上面的修改生效

ldconfig

下面可以正式安装memcached,需要指定libevent的安装位置

./configure -prefix=/soft/memcached --with-libevent=/soft/libevent

make

make install

测试

进入memcached的安装目录下的bin目录

执行:

./memcached -h

发现有如上界面说明memcached 已经安装成功

memcached启动

memcached -m 16 -p 11211 -d -c 1024 -u root

-d 选项是启动一个守护进程,

-m 是分配给Memcache使用的内存数量,单位是MB,这里是1024MB,默认是64MB

-u 是运行Memcache的用户,这里是root

-l 是监听的服务器IP地址,默认应该是本机

1211 -d -c 1024 -u root

-d 选项是启动一个守护进程,

-m 是分配给Memcache使用的内存数量,单位是MB,这里是1024MB,默认是64MB

-u 是运行Memcache的用户,这里是root

-l 是监听的服务器IP地址,默认应该是本机

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值