批量更新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);
        }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。