zoukankan      html  css  js  c++  java
  • 批量更新memcached缓存

    假如系统里有3类数据company,user,product

    利用维护版本号version的方式达到批量更新缓存的效果

    memcache.Add("company",cversion);记录company数据的版本

    memcache.Add("user",uversion);记录user数据的版本

    memcache.Add("product",pversion);记录product数据的版本

    更新或删除数据时维护版本

    memcache.Add("company",cversion+1);

    查询数据时 company+type+version就是所要获取数据的key

    key=memcache.get("company");

    memcache.get("company"+type+key);

            public IEnumerable<Company> GetList(int count)
            {            
                var version=DistCache.Get("company");
                if (version == null)
                {
                    DistCache.Add("company", 0);
                    version = 0;
                }         
                var key = "company_list_" + count + "_version" + version;
                var obj = DistCache.Get(key);
                if (obj == null)
                {
                    var data = _dal.GetList(count);
                    DistCache.Add(key, JsonConvert.SerializeObject(data), true);
                    return data;
                }
                return JsonConvert.DeserializeObject<IEnumerable<Company>>(obj.ToString());
                
            }
    
            public int UpdateCompany(Company info)
            {
                var version = DistCache.Get("company");
    
                if (version == null)
                {
                    DistCache.Add("company", 0);
                    version = 0;
                }
                else
                {
                    version = Convert.ToInt32(version) + 1;
                    DistCache.Add("company", version);
                }
                return _dal.Update(info);
            }
  • 相关阅读:
    migration的报错
    路由与认证
    drf-请求与响应
    django-rest-framework
    Vue -- 基础
    Django -- Auth模块
    Django -- 中间件
    Django -- cookie与session
    Django--ajax
    Django -- 视图层
  • 原文地址:https://www.cnblogs.com/isfish/p/4414116.html
Copyright © 2011-2022 走看看