高并发之Memcached实战第10课-“Memcached Get获取数据”部分代码分享2

高并发之Memcached实战第10课-“Memcached Get获取数据”部分代码分享2

一、Memcached客户端读写在同一个程序的逻辑:

MemcachedClient mcc = new MemcachedClient(list);
if(mcc.get("something")==null)
{
  if(!DataFactory.Exist(somethingObject))
  {
     DataFactory.StoreInDB(somethingObject);
  }

  mcc.set("something", 900, somethingObject).get();
}

ReadObject readObject =mcc.get("something");

readObject.DoClientLogic();

二、Memcached客户端读写分离的逻辑:

写逻辑:

MemcachedClient mcc = new MemcachedClient(list);
if(mcc.get("something")==null)
{
  if(!DataFactory.Exist(somethingObject))
  {
     DataFactory.StoreInDB(somethingObject);
  }

  mcc.set("something", 900, somethingObject).get();
}

读逻辑:

MemcachedClient mcc = new MemcachedClient(list);

ReadObject readObject =new ReadObject();
if(mcc.get("something")==null)
{
   readObject =DataFactory.ReadFromDB(somethingObject);
}
else
{
   readObject =mcc.get("something");
}

readObject.DoClientLogic();

碰到任何问题,请回复,共同讨论,谢谢!

时间: 2024-09-10 14:59:34

高并发之Memcached实战第10课-“Memcached Get获取数据”部分代码分享2的相关文章

memcached实战系列(六)理解Memcached的数据存储方式

Memcached的数据存储方式被称为Slab Allocator,其基本方式是: 1:先把内存分成很多个Slab,这个大小是预先规定好的,以解决内存碎片的问题.启动参数的时候配置进去的不懂得可以参考memcached启动参数配置章节. 分配给Slab的内存空间被称为Page,默认是1M.一个Slab下可以有多个Page. 2:然后把一个Page分成很多个chunk块,chunk块是用于缓存记录的空间.Chunk的 大小是先有一个基本值,然后根据增长因子来增大.每一个page中chunk是相等的

memcached实战系列(七)理解Memcached的数据过期方式、新建过程、查找过程

1.1.1. 新建Item分配内存过程 1:快速定位slab classid,先计算Item长度 key键长+flag+suffix(16字节)+value值长+结构大小(32字节),如90byte 如果>1MB,无法存储丢弃 取最小冗余的slab class 如:有48,96,120,存90会选择96   1.1.2. 按顺序寻找可用chunk顺序 (1)slot:检查slab回收空间slot里是否有剩余chunk delete:delete时标记到slot exptime:get时检查的过期

将同时推出“高并发之Redis初级”“高并发之Redis高级”“高并发之Memcached实战”系列课程

将同时推出"高并发之Redis初级""高并发之Redis高级""高并发之Memcached实战"系列课程,敬请关注,谢谢!   "高并发之Redis初级":http://edu.csdn.net/course/detail/482 "高并发之Redis高级":http://edu.csdn.net/course/detail/483 "高并发之Memcached实战": http://e

亿级流量电商详情页系统的大型高并发与高可用缓存架构实战

对于高并发的场景来说,比如电商类,o2o,门户,等等互联网类的项目,缓存技术是Java项目中最常见的一种应用技术.然而,行业里很多朋友对缓存技术的了解与掌握,仅仅停留在掌握redis/memcached等缓存技术的基础使用,最多了解一些集群相关的知识,大部分人都可以对缓存技术掌握到这个程度.然而,仅仅对缓存相关的技术掌握到这种程度,无论是对于开发复杂的高并发系统,或者是在往Java高级工程师.Java资深工程师.Java架构师这些高阶的职位发展的过程中,都是完全不够用的.技术成长出现瓶颈,在自己

高糖价致月饼涨10%百元以下月饼礼盒极少见

糖价涨幅超过30% 百元以下月饼礼盒极少见 消费者直说贵-- 本报讯(记者 王伶玲 实习生 王晓旭)白糖.面粉等原材料价格飞涨,中秋月饼今年价格普涨10%.记者昨天走访超市发现,为了抢占节前市场,今年月饼上市就打折. 昨天记者在超市看到,数十个品牌的月饼礼盒挤满了整个超市过道,销售人员也是卖力吆喝.记者注意到,虽然距中秋还有两周时间,但所有品牌的月饼均开始降价促销,超市打出的"满600元返60元"的促销海报也非常醒目. 月饼礼盒今年可谓价格"都不菲",和往年最低几十

高糖价致月饼涨10%价格不菲商家急打折

糖价涨幅超过30% 百元以下月饼礼盒极少见 消费者直说贵-- 白糖.面粉等原材料价格飞涨,中秋月饼今年价格普涨10%.记者昨天走访超市发现,为了抢占节前市场,今年月饼上市就打折. 昨天记者在超市看到,数十个品牌的月饼礼盒挤满了整个超市过道,销售人员也是卖力吆喝.记者注意到,虽然距中秋还有两周时间,但所有品牌的月饼均开始降价促销,超市打出的"满600元返60元"的促销海报也非常醒目. 月饼礼盒今年可谓价格"都不菲",和往年最低几十块钱相比, 现在百元以下的礼盒几乎不见

memcached实战系列(三)memcached命令使用

memcached命令的使用,在这里我们最好了解一下命令的含义,对命令有一个大致的了解,在了解的基础上进行使用.这里的命名是常用的crud命令的演示. 1.1.1. memcached命令的格式 标准协议:Memcached所有的标准协议包含在对item执行命令过程中,一个item包含两行: 第一行:Key Flags ExpirationTime Bytes Key:Key 用于查找缓存值 Flags:一个32位的标志值,客户机使用它存储关于键值对的额外信息(譬如用户规定1 json 2 xm

memcached实战系列(二)memcached参数以及启动

memcached启动的时候配置的参数也比较多.在这里我就做一个汇总,需要的时候直接查看参数以及参数的含义. 下面是参数的定义以及解释. 1.1.1. 参数说明 -d选项是启动一个守护进程 -m是分配给Memcache使用的内存数量,单位是MB,这里是10MB -u是运行Memcache的用户,这里是root -l是监听的服务器IP地址,这里指定了服务器的IP地址192.168.1.106如果是多个的话逗号分隔,格式IP地址:端口号 例如-l指定192.168.0.184:19830,192.1

【Spring实战】—— 10 AOP针对参数的通知

通过前面的学习,可以了解到 Spring的AOP可以很方便的监控到方法级别的执行 ,针对于某个方法实现通知响应. 那么对于方法的参数如何呢? 比如我们有一个方法,每次传入了一个字符串,我想要知道每次传入的这个字符串是神马?这又如何办到呢! 举个Action上面的例子,一个思考者(thinker),每次在思考时,都会传入一个字符串作为思考的内容. 我们想要每次获取到这个思考的内容,实现一个通知.因此读心者可以通过AOP直接监控到每次传入的内容. 源码参考 首先看一下思考者的接口和实现类: pack