memcached的优缺点
来源:互联网 发布:高颜值 知乎 编辑:程序博客网 时间:2024/05/17 04:39
需求来源:
为了加快文件访问速度且提供多个使用者、需要在内存中建立内存缓存数据的管理减小读写磁盘的次数及保证数据的更新、因为需要使用cache缓存。
1、Memcached 主要特性
a、数据仅存在于内存中,宕机或重启数据将全部失效
b、内容数据达到启动时设定内存指定值后、基于LRU算法删除缓存,LAZY模式、可指定最大内存用量。
c、实际瓶颈在于网络连接、占应较少的CPU资源
d、服务器端无分布式功能(C开发)、取决于客户端的实现(php、C#、java)、可布署多台服务器,访问时做个均衡策略如根据IP分配连接负载。
e、存储的节点数据键名250字节、键值限制在1MB、只适合普通字符串、作为小规模的数据分布式平台是十分有效果.
f、32位机器单进程使用最大内存2G、可分多个端口开启多进程支持、64位机器可认为无上限
2、数据直接放到内存需要解决的问题:
a、不能进行分布式扩展
b、缺乏一个有效的信息过期机制
c、多个并发同时使用共享使用失效机制
d、文件fd无法异步法、无法加入异步IO高速并发访问体系中
3、分布式集群搭建
a、客户端通过memcached私有通信协议与守护进程通信
b、nginx通过upstream协议通信、访问服务器未命中则只能访问memcached客户端获取数据并将数据主动写入memcached服务器。
c、缺乏认证以及安全管制、放在防火墙后
d、客户端通过一致性hash构建分布式cache系统、同时针对机器及缓存数据的key做hash、利用虚拟结点减小最小数据迁移。
4、如何添加与删除条目
a、通过set/add/replace添加数据及设定条目失效时间及数据长度
b、delete删除
c、信息访问只提供简单的缓存KV类型数据结构
d、可利用flush_all清空所有键值、标记所有item失效、内存可复用。
5、服务器扩容及备灾
a、服务器可随时扩容、需支持动态修改访问策略
b、服务器宕机则缓存数据全部失败、无法备灾
6、内存效率
采用 Slab Allocator的机制分配、管理内存。按照增加因数按照预先规定的大小、将分配的总内存分割成特定的长度块。
a、根据最小空间损失原则、分配最接近的slab空间
b、执行get才检查时间戳、避免监控耗费cpu资源
c、新对象加入还是找最接近slab空间、而不能使用其它slab,只能重新分配page,内存浪费严重。
d、内存不足时则启动LRU删除记录、可能删除未过期记录,缓存利用率下降。
几个术语:
Page:分配给Slab的内存空间,默认是1MB。分配给Slab之后根据slab的大小切分成chunk。
Chunk:用于缓存记录的内存空间。
Slab Class:特定大小的chunk的组。
Growth Factor:增长因数,默认为1.25
0 0
- memcached的优缺点
- memcached,redis,mongodb的区别以及优缺点
- Memcached简介及优缺点
- Memcached简介及优缺点
- Memcached特性及优缺点
- Redis 和 Memcached 各有什么优缺点,主要的应用场景是什么样的?
- Redis 和 Memcached 各有什么优缺点,主要的应用场景是什么样的?
- Redis 和 Memcached 各有什么优缺点,主要的应用场景是什么样的?
- 【memcached】memcached的分布式
- [Memcached]Memcached 的基础
- php的memcached客户端memcached
- [Memcached]Memcached 的分布式算法
- memcached-1-memcached的基础
- 线程的优缺点
- CSS+DIV的优缺点
- 简述Servlet的优缺点
- 直面自己的优缺点
- 三星i718的优缺点
- 【清明】树状数组
- react使用props的原则
- 前端学习2(css基础巩固)
- redis架构设计分析
- 逻辑相同但需要判断来源的函数
- memcached的优缺点
- react组件之间的通信
- 分布式缓存redis方案与memcached方案的选择
- 53. Maximum Subarray
- 24. Swap Nodes in Pairs
- FFmpeg 3.2.2 音频解码
- topcoder: TCHS10 Championship Round DIV 1 (lucky number third level)
- mac里Java的文件输入
- uboot设计原则