zoukankan      html  css  js  c++  java
  • Web Cache

    我们都知道,网站对于一些常用数据做缓存,会加速网站访问,像下面这样:

    public string GetFoo()
    {
        if ( cache.get("Foo") == null )
        {
            cache.set("Foo", GetFooFromDb());
        }
        return cache.get("Foo");
    }
    

    上面的方法如果GetFooFromDb()的开销很小或者运行时间很短,则影响不大,无非就是高并发的时候多执行几次GetFooFromDb()和设置缓存的值,但是如果GetFooFromDb()开销很大或者运行时间很长,或者是很多数据缓存的集合,则需要保证GetFooFromDb()方法只被执行一次:

    private static object GetFooLock = new object();
    
    public string GetFoo()
    {
        if ( cache.get("Foo") == null )
        {
            lock(GetFooLock)
            {
                if ( cache.get("Foo") == null )
                {
                    cache.set("Foo", GetFooFromDb());                
                }
            }
        }
        return cache.get("Foo");
    }
    
  • 相关阅读:
    Java学习9
    Windows环境下实现WireShark抓取HTTPS
    WireShark新手使用教程
    charles使用教程
    charles
    知道做到
    Appium 自动化测试改造思路
    今日总结
    今日总结
    今日总结
  • 原文地址:https://www.cnblogs.com/windchen/p/6542928.html
Copyright © 2011-2022 走看看