主要内容

本文是从大型互联网系统的应用角度探讨分布式缓存的。本文站在原理、框架、架构、案例等多个视角对分布式缓存进行了探讨。

互联网系统随着容量需求的陡增,许多看似简单的存储类场景都面临着巨大的容量问题和稳定性风险,而其中大部分问题都可以通过对缓存的合理使用来规避。读者从本文中将会获得应对这些问题的思路,也会对分布式缓存有一个体系化的认识。

本文内容共分为三个部分,16章的内容,全文按照从理论到实现,再到实践的思路撰写。

首先介绍分布式缓存的背景知识,对“分布式”和“缓存”这两个关键词进行了全面阐述,从而为后续章节的叙述打下基础;

接着介绍业界主流的缓存,关注其原理与实现,囊括了Ehcache、Memcached、Redis、 Tair、 EVCache、Aerospike等六个缓存或类缓存系统;

最后讨论缓存在互联网系统中的实践,从广告、社交、新闻、电商、营销等五类典型的互联网应用入手,分析它们面临的性能稳定性问题以及如何利用分布式缓存解决这些问题。

第1章,缓存为王

在商业的世界中,常说的一句话是“现金为王”。在互联网、移动互联网乃至整个软件技术世界中,与之相近的一个说法就是“缓存为王”。什么是缓存呢?

第2章,分布式系统理论

分布式理论体系宏大精深,可以通过一大厚本专著来专门阐述,本文难以尽述之,本章拟从分布式系统概论、分布式系统概念、分布式系统理论,比如Paxos、分布式系统设计策略、心跳检测、分布式系统设计实践、全局ID生成等几个方面略勾画之。本章可作为后续章节阅读的基础,比如Master-Slave节点切换需要心跳检测、Redis 多节点选主也有相应的理论体系( Paxos或者Raft协议等)支撑,一致性哈希、路由表甚至负载均衡也是常见的分布式服务调用策略。

第3章,动手写缓存

目前市面上已经有很多开源的缓存框架,比如Redis、Memcached、 Ehcache 等,那为什么还要自己动手写缓存?本章将带领大家从0到1写一个简单的缓存框架,目的是让大家对缓存的类型、缓存的标准、缓存的实现及原理有一个系统的了解,做到知其然,知其所以然。

第4章,Ehcache与Guava Cache

Ehcache是一个用Java实现的使用简单、高速、线程安全的缓存管理类库,其提供了用内存、磁盘文件存储,以及分布式存储等多种灵活的管理方案。同时Ehcache作为开放源代码项目,采用限制比较宽松的ApacheLicenseV2.0作为授权方式,被广泛地用于Hibernate、Spring、Cocoon 等其他开源系统。Ehcache 从Hibernate 发展而来,逐渐涵盖了全部功能,是目前发展势头很好的-一个项目。Ehcache具有快速、简单、低消耗、依赖性小、扩展性强、支持对象或序列化缓存、支持缓存或元素的失效、提供LRU/LFU/FIFO缓存策略、支持内存缓存及磁盘缓存、采用分布式缓存机制等特点。

为了方便大家了解最新版本的Ehcache, 4.2.1 、4.2.2、 4.2.3 节中采用最新的Ehcache 3.0的特性进行介绍,4.2.4 节采用Ehcache 2.10.2版本与Spring 相结合来做案例介绍,包括后面的源码分析也将采用这个版本。

GuavaCache和Ehcache一样也是本地缓存,但在细分领域也有不同的应用场景,4.5节中将做详细介绍。

第5章,从Memcached开始了解集中式缓存

许多Web应用程序都将数据保存到RDB中,但随着数据量的增大,RDB的负担加重,数据库

深度解读Netty:java读取邮件放到Excel相关推荐

  1. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  2. JAVA读取邮件 [AUTH] Username and password not accepted

    此处记录一下 在用java读取邮件的时候,会有 [AUTH] Username and password not accepted 错误 原因: 本文中使用google邮箱,是因为密码需要授权码登录并 ...

  3. Java读取和解析Excel数据:基于Apache POI(二)

    Java读取和解析Excel数据:基于Apache POI(二) 假设附录1文章中的test.xls是对员工的考勤记录表.需要根据这张excel表统计员工的加班时间,那么需要重点关注第五列的下班时候的 ...

  4. java 发邮件带excel附件,以流的形式发送附件,不生成excel文件

    公司需求:根据业务需要定时发送邮件,并且邮件需要有excel附件,附件内容为查询到的数据. 开发思路:由于服务器环境本身空间有限,而且不确定环境中读写权限,生成excel文件比较浪费资源,出现异常时可 ...

  5. java读取与写入excel(.xls .xlsx)

    maven依赖: 首先在maven中添加: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><depend ...

  6. java方法的通用格式,【学习笔记】使用Java读取、写入Excel全版本(包含xls、xslx格式)通用方法及代码展示(POI)...

    POI是Java编写的开源跨平台Excel处理工具,不仅提供了对Excel的操作,也提供了对Word.PowerPoint和Visio等格式的文档的操作. jar包下载 基于Maven工程的pom.x ...

  7. 深度解读Netty:java未来发展前景

    前言 作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的.对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来.实际 ...

  8. java 读取excel_Java12POI操作Excel

    Apache POI是一个开源的利用Java读写Excel,WORD等微软OLE2组件文档的项目. 我的需求是对Excel的数据进行导入或将数据以Excel的形式导出. 先上简单的测试代码: pack ...

  9. 综观java读取和创建excel方法

    1. jxl库 jxl.jar库下载地址:http://download.csdn.net/detail/yahohi/3826761 使用方法: import java.io.FileInputSt ...

最新文章

  1. 【翻译】如何创建Ext JS暗黑主题之一
  2. 5 CrawlSpider操作
  3. set和dict理论和操作
  4. 叁仟柒佰万(mex+线段树+dp+前缀和优化+双指针+桶)
  5. ONNX系列七 --- 在Python中使用可移植的ONNX AI模型
  6. 逗号分割符--字段中含逗号等情况的解析方法Java实现
  7. JAVA GUI界面组件学习
  8. Linux命令解释之useradd,userdel,usermod
  9. 转载:NPOI导出到Excel表格
  10. tcpdump抓包+wireshark分析配合使用(二)
  11. 8g内存一般占用多少_手机6G和8G运存有什么不同,8G运存真比6G流畅?这也要考虑处理器...
  12. MFC网络通信程序设计——网络聊天室
  13. 关于MemoryBarrier
  14. [QCTF2018]X-man-Keyword
  15. 苹果库乐队怎么玩_iPhone技巧丨苹果手机制作炫酷铃声,就是不一样!
  16. 免sdk实现微信/支付宝转账打赏功能
  17. Shiro在线刷新权限
  18. 4键电子手表说明书_4键sport电子表使用说明书,按START键可循环选择12/24小时显示格式...
  19. 不同格式文件之间的相互转化
  20. HouseRobber

热门文章

  1. react如何使用dva
  2. C语言中int类型及位、字节和字的介绍
  3. Windows软件界面字体和图标太小的解决办法
  4. ArcMap绘图,根据两个属性信息分别确定符号大小和颜色
  5. arp协议与rarp协议
  6. uos服务器开启远程桌面连接不上,UOS系统中安装x11vnc远程桌面
  7. 我讨厌这个绿油油的头像!我用opencv换一下背景
  8. 虚拟机与本地连接不上时,该怎么办
  9. 分享几个python有趣代码
  10. 小姨让我给他女儿写一个英语练习游戏脚本!答应做出来介绍闺蜜!