Memcached简介

作者: bernierayxu | 来源:发表于2019-03-21 15:28 被阅读0次
1. 什么是memcached?

答:不支持持久化,没有安全机制。可以用telnet等工具直接连接memcached。memcached是多线程工作,而redis是单线程工作。各个memcached服务器之间互不通信,各自独立存取数据,不共享任何信息。服务器并不具有分布式功能,分布式部署取决于memcache客户端。


介绍
介绍2
介绍3
集群介绍
2. memcached支持什么命令?
常用命令列表
3. memcached的服务器要求是什么?
服务器要求
4. memcached的使用场景是什么?

答:memcached可以通过设置CAS或者版本号的方式来避免重复修改。


使用场景
5. memcached的内存是如何分配的?

答:memcached通过设置-m来分配最大内存,默认是64MB,但是不是一开始就会直接向操作系统申请-m设置的内存。然后将内存分成多个page,一个page为1MB,每个page里面有多个固定大小的内存块chunk,其大小最小为96Bytes,最大为1MB,由增长因子来决定中间内存块的大小,每种大小的chunk对应一个slab class。当其中的一个大小的内存块所申请的page没有空间了,可以申请多一个大小的内存块page。所以最大的一个key+value不能超过1MB。内存分配策略叫做slab allocation。


内存分配图解
内存分配图解
6. memcached在内存不够的时候如何清理内存?
  • 双向链表,如果其中的某个key被访问了,则会将其放到链表头部,这个过程叫做“碰撞”。如果需要清理缓存的时候,则将链表尾部的key清理。问题是“碰撞”的几率高,导致对同一链表修改会争抢锁,会让CPU效率降低。
清理内存策略LRU
  • 分段LRU,根据stab class分成四种链表。四种链表是根据数据的冷热来决定挪动的。通过不同的线程去检查链表,根据LRU来挪动。


    分段LUR
    LRU爬虫
7. memcached的集群方案有哪些?

答:因为memcached的服务器并不支持集群,所以有两种方案支持,一种是客户端支持集群,一种是代理端支持集群(性能会有所损耗,大概20%)。推荐使用客户端。


客户端支持集群
代理端支持集群
8. 集群和分布式有什么区别?

答:集群可以在单机或者多台机子上部署多个相同配置的服务;分布式在多台机子上部署多个不同服务。

9. 架构的演化是什么?
  • 并发量低的时候


    阶段1
  • 并发量1000~1w的时候


    阶段2
  • 并发量1w~5w的时候


    阶段3
10. 在分布式/集群redis/memcached/kafka/hadoop/mycat中使用到的一致性哈希算法是什么?

答:在集群增加或者减少机器的时候,如果用hash算法就会出现大面积缓存不中的情况,造成数据库服务器雪崩,所以此时出现一致性hash算法。将数据存放在hash取模之后的一个节点,但是一致性hash算法无法解决负载均衡的问题,因为数据本身就是不均衡的。所以加强版本是增加虚拟节点,原因是虚拟节点越多,则数据尽可能均匀。但是虚拟节点是需要维护的,数量也有上限就是2^31。一致性哈希算法是无法完全达到均匀数据。

分布式集群的问题
一致性哈希算法
一致性哈希算法加强版

相关文章

  • 【memcached】Linux上memcached高可用安装配

    What is Memcached? http://memcached.org Memcached简介 https...

  • memcached简介

    姓名:穆培婷 学号:17101223414 专业:软件工程 本文转载自:https://baike.baidu.c...

  • Memcached简介

    1. 什么是memcached? 答:不支持持久化,没有安全机制。可以用telnet等工具直接连接memcache...

  • 安装Memcached与php扩展:memcached与memc

    简介 Memcached:官网:http://memcached.org/Memcached是一个高性能的分布式内...

  • Memcached集群的使用

    基础知识 什么是Memcached Memcached简介 Memcached:是一个免费开源的、高性能的、具有分...

  • Memcached入门笔记

    Memcached简介 Mencached是一个自由开源的、高性能、分布式内存对象缓存系统。 Memcached是...

  • Memcached 协议

    1. Memcached 简介 1.1 Memcached 是什么? 是一种 高性能 多线程基于事件处理机制 k-...

  • springboot集成memcached

    memecached简介Memcached是LiveJournal旗下Danga Interactive公司的布拉...

  • memcached简介与安装

    什么是memcached: 1、memcached之前是danga的一个项目,最早是为LiveJournal服务的...

  • memcached源码分析

    memcached 1.简介 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。通过在内存里维护...

网友评论

    本文标题:Memcached简介

    本文链接:https://www.haomeiwen.com/subject/qubzmqtx.html