美文网首页架构树下
Memcached之服务器端

Memcached之服务器端

作者: 落日无风 | 来源:发表于2018-07-19 00:15 被阅读49次

Cache

缓存是架构之利器,在高并发的互联网中,是杀手锏的武器。我们会通过一些列的文章来介绍缓存相关的工具(包括memcached, redis), 缓存的架构设计以及缓存的相关实践。本文作为第一篇,和大家一起讨论Memcached之服务器端。

简介

Memcached是一款开源、高性能的分布式且基于key/value的内存缓存系统。它看起来非常简单,快速的部署、简单易用,但是却在互联网的大厂充频繁使用,比如:twitter, facebook, 微博,大众点评等。

组成

  • 服务端 保存数据在内部的hash table里面
  • LRU 决定清楚旧的数据或者重用merory
  • 客户端 保存有效的服务器列表,实现路由算法来选择服务器

设计理念

  • 简单K/V存储 存储的数据结构是预先序列化好的,服务器端不需要知道你的数据结构。它组成为:key, value, 失效时间,optional flags.
  • 逻辑一半在服务器端,一半在客户端。服务器端保存和获取数据,删除数据或者重用内存。客户端维护可用的服务列表,觉得路由选择。
  • 服务器之间互相不通信。每个服务器之间都是孤岛,不通信,不广播。
  • 客户端 保存有效的服务器列表,实现路由算法来选择服务器
  • O(1) 快速的操作速度,每秒近百万的吞吐量。
  • LRU失效,失效的空间将被重新使用。

内存存储

使用Slab allocation机制分配和管理内存。它的原理是:预先按照规定的大小,将内存划分为不同的块 (chunk), 并把大小相同的块分成组(Slab, collection of chunks)。失效的块不会释放到内存中,而是重复利用。

  • Page: 分配给Slab的空间,默认为1M
  • Chunk: 用于存放缓存的空间
  • Slab: 特定大小的Chunk集合
    所以它内部可以成Slab集合 Slab1 [chunk1, chunk2, chunk3 ...], Slab2 [chunkx1, chunkx2, chunkx3...]。Memcached根据收到的数据大小,选择合适的Slab,让后将数据放到chunk中。
    注意:Memcached中的chunk大小是预先设定了的,比如Chunk设置为88K, 但是存放的数据为66K,则存在22K的剩余,这部分就浪费掉了。但是相对传统内存的malloc和free, 则煎炒了系统的内存碎片,降低了操作系统管理内存的负担。

相关文章

  • Memcached之客户端

    Memcached之服务器端简单介绍了Memcached的Server功能,了解Memcached的服务器端负责数...

  • PHP memcache扩展安装

    一、下载并安装memcached服务器端软件 1、安装memcached服务器端软件 安装包链接地址 2、安装me...

  • memcache学习笔记

    memcache 和memcached的关系 memcache是客户端,memcached是服务器端,memcac...

  • Memcached之服务器端

    Cache 缓存是架构之利器,在高并发的互联网中,是杀手锏的武器。我们会通过一些列的文章来介绍缓存相关的工具(包括...

  • memcached优化

    memcached分布式 Memcached尽管是“分布式”的缓存系统,但服务器端并没有分布式功能。各个 Memc...

  • Linux 安装 Memcache && PHP memcach

    1.安装libevent (依赖包,不装回报错) 2.安装Memcached(服务器端源码包) 启用memcach...

  • 关于redis的几件小事(二)redis线程模型

    1.memcached和redis有什么区别? (1)Redis支持服务器端的数据操作redis和memcache...

  • Redis与Memcached

    比较 Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和支持更丰富的数据...

  • memcached文档

    memcached文档 memcached介绍 Memcached 是国外 社区 网站 LiveJournal ...

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

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

网友评论

    本文标题:Memcached之服务器端

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