[DB] Memcache

什么是Memcache

  • Redis的前身
  • 严格来说只能叫缓存,不支持持久化,停电后数据丢失
  • Strom、Spark Streaming实时计算的结果一般会保存在Redis中
  • JDBC是性能瓶颈
  • 关系型数据库将数据缓存到内存数据库
  • 服务器端先访问内存数据库,有数据就直接返回,否则通过JDBC访问数据库

[DB] Memcache

原理

  • 在内存中维护一张巨大的Hash表
  • 通过路由算法决定数据存储位置
  • 默认情况下,实例之间不进行通信
  • 每个Hash表由多个Slab(1M)组成,Slab由多个chunk组成

[DB] Memcache

路由算法

  • 客户端指定
  • 求余数
    • 有3台服务器,则key对3求余,数据均匀分布到3台服务器上
    • 缺点:扩容或宕机时会造成数据丢失
  • 一致性Hash
    • 扩容
    • 宕机

 

 

[DB] Memcache   [DB] Memcache

主主复制

  • 某日本工程师改写版本
  • 备份数据,防止意外宕机

安装

  • gcc编译器

 

[DB] Memcache

上一篇:Maven+JSP+Servlet+C3P0+Mysql实现的音乐库管理系统


下一篇:[DB] MapReduce 例题