缓存技术是保障系统性能的基础技术、核心技术。

缓存发挥的作用

① 最大程度上避免对数据库的并发查询,从而降低因为数据库资源不足导致的系统故障。

② 提升系统的响应速度,保证用户体验

总之缓存使系统稳定高效的运行。

缓存的重要性

如果你的系统使用到了数据库,但没有使用缓存,那你的网站一定没有多少访问量;如果有访问量,那你的网站可用状态一定是断断续续的。

服务端分布式缓存与本地缓存

  1. 分布式缓存:常用redis,memcached

    1. 分布式缓存用于集群环境下多节点使用同一份缓存的情况,从而减少数据库查询
    2. 分布式缓存有网络IO,因此吞吐率与缓存的数据大小有较大关系
    3. 分布式缓存网络IO导致的时间消耗不可忽略(非常重要)
  2. 本地缓存:EHCache,JbossCache,Map(ConcurrentHashMap)等
    1. 本地缓存非常高效,从分布式缓存取一次数据消耗的时间可以从本地缓存取几千几万甚至百万次。
    2. 本地缓存在集群环境下存在不同节点数据不一致问题,因此使用时需要考虑缓存的时效性,以及缓存数据对不一致的敏感程度
  3. 缓存时效性选择
    1. 实际情况下不同场景对同一数据的时效性有差异,比如商品的库存,商品页面展示是否可以购买时可以有短暂的缓存,但提交订单时必须是实时的数据。
    2. 不同的业务数据对时效性的要求不一样,比如商品属性时效性要求较低,商品价格和库存对时效性要求较高
  4. 本地缓存+分布式缓存构建高性能网站
    1. 使用本地缓存做一级缓存,减少分布式缓存的访问量(网络IO带宽消耗及网络时间消耗)
    2. 使用分布式缓存做二级缓存,减少集群环境下访问数据库的次数

服务端分布式缓存与本地缓存相关推荐

  1. 分布式缓存与本地缓存的区别

    分布式缓存与本地缓存的区别 转载自:https://ost.51cto.com/posts/1002 缓存的概念: 在服务端中,缓存主要是指将数据库的数据加载到内存中,之后对该数据的访问都在内存中完成 ...

  2. 分布式缓存和本地缓存的区别

    分布式缓存和本地缓存的区别 redis/memcached**分布式缓存**和map/guava**本地缓存**的区别 什么是缓存一致性? redis/memcached分布式缓存和map/guava ...

  3. 缓存基础----本地缓存、分布式缓存以及多级缓存

    目录 一.缓存的概念(什么是缓存) 二.为什么要用缓存(为什么要用redis作为缓存) 三.缓存的分类有哪些 1.本地缓存 2.分布式缓存 3.多级缓存 像MySql等传统的关系型数据库已经不能适用于 ...

  4. 论微服务接入Redis缓存和本地缓存,提高性能并发第一步!

    一.缓存的概念 首先引入缓存还是有几个问题要问的 1.为什么要用缓存 2.项目中缓存是如何使用的 3.常见的缓存问题 带着这几个问题进行下面的学习 为什么需要缓存? 我们用缓存主要有两个原因 1,缓存 ...

  5. 前端缓存 (http缓存 与 本地缓存)

    前端缓存主要是分为http缓存和本地缓存 http 缓存 强缓存:Expires(过期时间)/ Cache-Control(no-cache)(优先级高) 协商缓存:Last-Modified/Eta ...

  6. 同时存多个变量缓存 微信小程序_微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解...

    微信小程序 缓存 关于本地缓存 1.wx.setStorage(wx.setStorageSync).wx.getStorage(wx.getStorageSync).wx.clearStorage( ...

  7. 高并发服务端分布式系统设计概要(上)

    高并发服务端分布式系统设计概要(上) ======张峻崇 原创.转载请注明出处.====== 又是快一年没写博客了,2013年也只剩尾巴,也不知道今年都忙了些什么.写这篇文章的目的,主要是把今年以来学 ...

  8. MyBatis 缓存详解-一级缓存(本地缓存)介绍

    一级缓存也叫本地缓存,MyBatis 的一级缓存是在会话(SqlSession)层面进行缓存的.MyBatis 的一级缓存是默认开启的,不需要任何的配置. 首先我们必须去弄清楚一个问题,在MyBati ...

  9. 客户端缓存(http缓存和本地缓存)

    原文链接:https://juejin.im/post/6844904194680291342 http缓存 http缓存用于客户端储存一些不经常变化的静态文件(图片.css.js等).分为强制缓存和 ...

最新文章

  1. 单片机初学者做项目为什么这么难?单片机初学者心得有哪些
  2. 聚类热图怎么按自己的意愿调整分支的顺序?
  3. ajax delete gin 获取不到_《Gin 文档》之路由篇
  4. Qt学习笔记之网络编程
  5. 爬虫二(urllib模块)
  6. 利用异步I/O复制文件及详解
  7. ArcSDE数据库连接(直连、服务连)与GT_Geometry存储配置图解
  8. 如何使用 Spring 对数据库进行 CURD?
  9. 2020-06-05 原始套接字/AF_PACKET链路层访问
  10. Entity Framework - 利用T4 分离 Entity 和 DbContext
  11. matlab元胞元素_MATLAB元胞数组(cell)知识
  12. 设计java每行输出5个数_程序设计入门—Java语言 第五周作业
  13. 怎样在input里加入搜索_影视类公众号文章怎样图文排版可以吸引用户?
  14. 中文圣经 for Android
  15. VS自带反编译DLL工具
  16. 多个Gbase集群间表同步思路
  17. 洛谷P3369 AVL树
  18. input类型为file时,accept为表格xlsl
  19. 小红书销售情况(EDA/RFM)
  20. php调用mahout包,mahout实现基于用户的Mahout推荐程序

热门文章

  1. (JAVASwing界面)java实现简单的人事管理系统(数据库原理课程设计)
  2. 现代企业管理笔记——管理理论新进展
  3. 冒泡排序、冒泡排序动画、冒泡排序代码、冒泡排序教程
  4. 在Mac上安装Ruby on Rails
  5. CEC循环生态社区答疑XAG到底有多好的价值前景
  6. 数据挖掘考题汇总(填空题与计算题)带答案
  7. 基于vs2019的openGL项目配置
  8. Python-pathlib 库的 Path 用法
  9. 利用网络,下载网络资源
  10. Tibco Designer -- 时间日期转换