美文网首页
03 | 缓存可以用来解决哪些问题

03 | 缓存可以用来解决哪些问题

作者: 乌鲁木齐001号程序员 | 来源:发表于2020-07-25 11:00 被阅读0次

缓存

  • 最通用的解释就是可以进行高速数据交换的存储器;

缓存与内存的区别

  缓存 内存
掉电是否丢数据
物理结构是否相同 部分内存、缓存框架(软件,比如 Guava、Redis) 一般为物理内存条
部署方式 所在主机、独立部署 所在主机

缓存的几种淘汰策略

FIFO | 先进先出
  • 如果一个数据最先进入缓存, 则应该最早被淘汰;
LRU | 最不经常使用
  • 缓存的内容都在一个数轴上(时间轴),最左边的缓存淘汰;
LFU | 最近最少使用
  • 横轴是缓存,纵轴是缓存在一段时间的使用量,纵轴上的值最短的缓存淘汰;

缓存使用的前提

  • 应用扛不住用户并发量的时候;

缓存的应用场景

  • 将数据库的部分数据加入缓存;
  • 列表排序分页等场景下,在缓存中完成;
  • 并发情况下的计数器;
  • 详情内容数据放在缓存;
  • 分布式的 session;
  • 热点数据排名,最热的数据放在前面,不热的数据放在后面,然后不断的更新这个排名;
  • 发布订阅:一般 MQ 做这个事情,但是有的缓存框架(Redis)也可以做这个事情;
  • 分布式锁:可以使用数据库、zookeeper、consul、etcd、redis 来做分布式锁;

相关文章

  • 03 | 缓存可以用来解决哪些问题

    缓存 最通用的解释就是可以进行高速数据交换的存储器; 缓存与内存的区别 缓存内存掉电是否丢数据丢丢物理结构是否相同...

  • Spring循环依赖解析

    一、前置问题 Bean创建流程? 什么是循环依赖? 三级缓存可以解决哪些循环依赖场景? 二级缓存可以解决循环依赖吗...

  • 数学的边界

    问数学的边界在哪里其实就是问数学可以解决哪些问题,数学不能解决哪些问题。 数学不能解决哪些问题? 数学能解决哪些问...

  • 谈谈对于多线程的理解

    针对这个问题可以从以下几个点来说。 多线程用来解决什么问题 java怎么实现多线程 使用多线程会带来哪些问题 怎么...

  • 超时缓存类

    这个用来解决普通需要缓存的情况

  • 阿里Java二面遇“Redis”败北,苦心学习这些Redis笔记

    我们面试的时候 ,经常会被问这种到问题:Redis 常用的业务场景有哪些? 什么是缓存穿透?怎么解决?什么是缓存雪...

  • 如何应对缓存穿透

    相关的问题 数据库TPS是多少,是否进行测试过 缓存击穿有哪些方案解决 前言 设计一个缓存系统,不得不要考虑的问题...

  • 1、网站架构及其演变过程随笔

    1、解决网站速度问题的核心主要是解决海量数据操作问题和高并发问题。 2、使用缓存可以降低数据库的压力,因为缓存有失...

  • Redis知识整理

    价值与场景 Redis 这么火,它都解决了哪些问题?问题场景:接口慢方案1:消费者端缓存(cache-contro...

  • 60分钟高效阅读模板

    01.作者想通过这本书解决什么问题? 02.作者解决问题的具体方案是什么? 03.跟解决方案相关的关键词有哪些? ...

网友评论

      本文标题:03 | 缓存可以用来解决哪些问题

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