Memcache学习系列 -- 概念了解以及优缺点分析

本文介绍Memcache作为一种高性能的分布式内存对象缓存系统的特点,包括其免费开源性质、内存级存储方式、简单的C/S架构及不支持数据持久化等特性。

官方对Memcache的描述是免费开源、高性能、分布式内存对象缓存系统。这里有几个关键字:免费开源、高性能、分布式、内存对象缓存。OK,首先分析一下这几个关键字

免费开源:免费就是不用付费使用,开源就是可以看到其源码,方便分析实现原理

高性能:可以高效的实现某些功能,比如平响更低、资源占用更小、QPS/TPS更高

分布式:分布式是与集中式比较而言的,这里的“分布式”不是指的服务端的分布式,而是指的客户端的分布式

内存缓存:数据都是一直存放在内存中的,并没有持久化存储。

1、Memcache也是C/S结构的,客户端与服务端协议简单。 

2、Memcache服务没有单独的配置文件,是否作为守护进程运行以及分配的内存大小、连接数、监听的端口等信息都是在服务启动时设置,如下所示:

 

/usr/local/memcached/bin/memcached -d -m 64M -u root -l 192.168.0.200 -p 11211 -c 256 -P /tmp/memcached.pidlocal/memcached/bin/memcached -d -m 64M -u root -l 192.168.0.200 -p 11211 -c 256 -P /tmp/memcached.pid

 

  • -d是启动一个守护进程;
  • -m是分配给Memcache使用的内存数量,单位是MB;
  • -u是运行Memcache的用户;
  • -l是监听的服务器IP地址,可以有多个地址;
  • -p是设置Memcache监听的端口,,最好是1024以上的端口;
  • -c是最大运行的并发连接数,默认是1024;
  • -P是设置保存Memcache的pid文件

3、服务端可以通过status命令查看运行时信息,比如连接数、已用内存、端口等信息

4、因为是内存级存储,只能用来存储小块的任意数据(字符串、序列化对象),这些数据可以是数据库调用、API调用或者是页面渲染的结果,存储量受机器物理内存的限制(不能超过物理内存)

 

5、不支持数据的备份以及还原

6、常用的有set、get、gets、add、replace、append、preappend、del 等命令,数据类型(字符串、序列化对象)也比较单一

总结:

(1)轻量级、对于各种语言的支持都比较好

(2)内存级的数据缓存,不能进行持久化;不能进行数据的备份以及还原,机器重启、断电灯突发情况会造成数据的丢失,所以不能存放重要数据。

(3)假的分布式,真正的分布式是在客户端实现的,多台服务器之间并不能实现数据的一致性;和业务的耦合性太强,不能响应业务需求的快速变化

(4)相较于Redis而言,数据类型比较单一,不能cover复杂的业务场景

(5)操作API比较单一,只有add set get等基本操作

7、老版本(1.4.3之前的版本)memcache并不支持安全认证,对于公网访问的服务建议升级最新的版本

 

参考: Memcached服务安全加固

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值