zoukankan      html  css  js  c++  java
  • 一站式学习Redis 从入门到高可用分布式实践(慕课)第十章 缓存设计与优化

    课程目录

    缓存的使用与设计

    • 缓存的受益与成本

             受益:1.加速读写:通过缓存加速读写速度:CPU L1/L2/L3Cache、Linux page Cache加速硬盘读写、浏览器缓存、Ehcache缓存数据库结果

                        2.降低后端负载:后端服务器通过前端缓存降低负载:业务端使用Redis降低后端MySQL负载等

             成本:1.数据不一致 :缓存层和数据层有时间窗口不一致,和更新策略有关

                        2.代码维护成本:多了一层缓存逻辑

                        3.运维成本:例如Redis Cluster

               使用场景

              1.降低后端负载:对高消耗的SQL:join结果集/分组统计结果缓存

               2.加速请求响应:利用Redis/Memcache优化IO响应时间

               3.大量写合并为批量写:如计数器先Redis累加再批量写DB

    • 缓存更新策略

               1.LRU/LFU/FIFO算法剔除:例如maxmemory-policy

               2.超时剔除:例如expire

               3.主动更新:开发控制生命周期

    • 缓存粒度控制

               三个角度

                     1.通用性:全量属性更好。

                     2.占用空间:部分属性更好。

                     3.代码维护:表面上全量属性更好。

    • 缓存穿透优化----大量请求不命中

                         原因:  1.业务代码自身问题

                                      2.恶意共计、爬虫等等

                     如何发现:1.业务的响应时间(可预计的)

                                        2.业务本身问题

                                        3.相关指标:总调用数、缓存层 命中数、存储层命中数

                        解决方法:

                                        1.缓存空对象

                                        2.布隆过滤器拦截

    • 无底洞问题优化

                            加机器性能没有提升,反而下降

     

    • 缓存雪崩优化
    • 热点key重建优化

     

    互斥锁 :减少了重建缓存次数,增加了等待

    永不过期:可能数据不一致

  • 相关阅读:
    5秒解决Https请求 未能创建 SSL/TLS 安全通道
    Entity Framework,EF 手动DB FIRST,不使用设计器
    An item with the same key has already been added
    C#.NET AES ECB 加密
    Linux通过netstat命令统计连接数
    SqlServer 查看某个表的具体数据分布
    SqlServer查看某个表的索引详细信息
    Visual Studio2019 的 Git增加忽略文件
    SQL server 获取各种 约束信息
    C# 根据日期判断星期几
  • 原文地址:https://www.cnblogs.com/jiang910/p/10036759.html
Copyright © 2011-2022 走看看