摘要:
在使用Memcached时,一般实时读写的场景并不多见。但多是Memcached写入后,在一定时间后才会有读操作。但是如果应用场景,是写入后瞬间即会有读操作呢?似乎没有什么特别之处,我们依然可以这样写:注:此处使用的是spymemcached客户端。MemcachedClientcache=newMemcachedClient(cacheServerAddr);cache.set("key",3600,bigData);returncache.get("key");如此写入缓存后,如果立刻就有其他客户端进行读操作,则会读取失败,因为set是异步操作(as 阅读全文
摘要:
1. Memcached是什么?Memcached是分布式的内存对象缓存系统。2. Memcached的基本数据结构是什么?Memcached是基于Key/Value对的HashMap。每一对,都可以设定过期时间。3. Memcached用什么实现?服务端程序由C语言编写,客户端可以用任何语言编写。客户端通过Memcached协议与服务端通信。4. Memcached特点(1)无备份/冗余:各Memcached节点的数据之间没有互相备份,一旦某个节点挂掉,缓存中的数据就会丢失。5. 开发团队Memcached由Danga Interactive开发。6. 相关下载(1)Memcached服务端 阅读全文
摘要:
1. 源程序packagecom.sinosuperman.memcached;importjava.io.IOException;importjava.net.InetSocketAddress;importnet.spy.memcached.CASResponse;importnet.spy.memcached.CASValue;importnet.spy.memcached.MemcachedClient;publicclassTest{privatestaticMemcachedClientclient=null;static{try{client=newMemcachedClient 阅读全文
摘要:
1. 非CAS首先看一个不是CAS的Memcached程序实例。实例的问题原型,见上一篇博文。程序实例:packagecom.sinosuperman.memcached;importjava.io.IOException;importjava.net.InetSocketAddress;importnet.spy.memcached.MemcachedClient;publicclassTest{publicstaticvoidmain(String[]args)throwsIOException{MemcachedClientcache=newMemcachedClient(newInet 阅读全文
摘要:
1. 什么是CAS协议很多中文的资料都不会告诉大家CAS的全称是什么,不过一定不要把CAS当作中国科学院(China Academy of Sciences)的缩写。Google.com一下,CAS是什么?CAS是Check And Set的缩写。2. CAS协议原文http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt3. CAS的基本原理基本原理非常简单,一言以蔽之,就是“版本号”。每个存储的数据对象,多有一个版本号。我们可以从下面的例子来理解:如果不采用CAS,则有如下的情景:第一步,A取出数据对象X;第二 阅读全文
摘要:
一、基本参数在我们第一次安装Memcached时,一般都是用过这个命令:memcached-m512-uroot-d-l127.0.0.1-p11211我们先来解释这几个参数的含义吧。-m 指定缓存所使用的最大内存容量,单位是Megabytes,默认是64MB-u 只有以root身份运行时才指定该参数-d 以daemon的形式运行-l 指定监听的地址-p 指定监听的TCP端口号,默认是11211二、其他常用的参数-t 指定线程数,默认是4个-h 打印帮助信息-c 最大同时连接数,默认是1024.-U 指定监听的UDP端口号,默认是11211-M 内存耗尽时显示错误,而不是删除项一开始说的“-d 阅读全文
摘要:
1. 构造函数publicMemcachedClient(InetSocketAddress[]ia)throwsIOException;publicMemcachedClient(Listaddrs)throwsIOException;publicMemcachedClient(ConnectionFactorycf,Listaddrs)throwsIOException;其中最简单的构造函数就是第一个,可以直接传递一个InetSocketAddress,也可以是InetSocketAddress的数组。其实InetSocketAddress也是被转换成数组的。比如:MemcachedCli 阅读全文
摘要:
1、Cache定义(1)狭义概念:用于CPU的相对高速处理与主存(Main Memory)的相对低速处理的之间起到协调功能的硬件设备。(2)广义概念:用于速度相差较大的两种硬件之间,起到协调两者数据传输速度差异的结构。狭义概念来自于Cache自1967出现以来较长时间内的应用场景。因为CPU的数据处理速度,要远远高于主存,所以在CPU和主存之间会有高速缓存设备,甚至是多级缓存设备。而广义概念,则是目前已经被广泛接受的一种定义,且广义概念中,Cache不再只局限于硬件,也可以是软件。比如用于网络相对低速传输与磁盘相对高速传输之间的速度差异协调。2、Cache的本质原理可以一句话概括,就是:Cac 阅读全文