zoukankan      html  css  js  c++  java
  • 高性能的大型系统经验 -- 将数据分类、并缓存

     对大多数大型系统而言,数据库往往是最容易出现瓶颈的地方,而通过使用恰当的缓存技术可以非常有效地减轻数据库的负载。
        
        将系统中用到的所有数据进行分类,分别对待不同种类的数据而不是一视同仁,有利于正确地做出缓存哪些数据、以及如何缓存的决策。
        我通常将系统中用到的数据分为四类:恒定不变的数据,只发生增量的数据,偶尔改变的数据,经常改变的数据。
    (1)对于恒定不变的数据,采用普通的恒定缓存,即这种缓存在系统启动后初始化一次就不再改变了。
    (2)对于只发生增量的数据,采用智能式的增量缓存,如果所要的数据在这种缓存中不存在,则该缓存会从其它地方(如数据库)自动加载目标对象并缓存起来。
    (3)对于偶尔改变的(但不是十分敏感的)数据,采用定时刷新的缓存,如每隔10分钟刷新一次。
    (4)对于经常改变的数据,则又可以进一步细分:
           将数据中变动部分和非变动部分区分开来,而非变动部分又可以封装为单独的对象,从而对该“部分”对象采用上述三种方式之一进行缓存。

        如此,便可最大程度的利用缓存,从而可以有效提高系统性能,并明显减轻数据库和网络负载。
  • 相关阅读:
    SVN服务器搭建(一)
    排序算法二:冒泡排序
    【LeetCode】136. Single Number
    【LeetCode】217. Contains Duplicate
    【LeetCode】189. Rotate Array
    【LeetCode】122. Best Time to Buy and Sell Stock II
    【LeetCode】26. Remove Duplicates from Sorted Array
    【LeetCode】20. Valid Parentheses
    【LeetCode】680. Valid Palindrome II
    【LeetCode】345. Reverse Vowels of a String
  • 原文地址:https://www.cnblogs.com/fx2008/p/2264452.html
Copyright © 2011-2022 走看看