memcached-java客户端xmemcached简单使用
来源:互联网 发布:汪国真经典诗文 淘宝 编辑:程序博客网 时间:2024/04/29 09:09
1. 前一篇文章简单说了下如何安装memcached,想到了memcached是分布式的缓存框架,所以自己在公司的3台测试机上安装了下。
2. 关于什么是xmemcached就不多说了,其实就是实现了memcached的java客户端,关于分布式下一篇会稍微详细点介绍,这里只要知道这个分布式其实是客户端的分布式,其实是没有主从节点的概念的。
3. 直接贴代码,看看如何使用
import java.io.IOException;import java.util.concurrent.TimeoutException;import net.rubyeye.xmemcached.CASOperation;import net.rubyeye.xmemcached.MemcachedClient;import net.rubyeye.xmemcached.MemcachedClientBuilder;import net.rubyeye.xmemcached.XMemcachedClientBuilder;import net.rubyeye.xmemcached.exception.MemcachedException;import net.rubyeye.xmemcached.utils.AddrUtil;public class Cache {private MemcachedClientBuilder builder = null;private MemcachedClient client = null;public Cache(String address, int[] weight) {builder = new XMemcachedClientBuilder(AddrUtil.getAddresses(address), weight);builder.setConnectionPoolSize(5);try {client = builder.build();} catch (IOException e) {e.printStackTrace();}}public void set(String key, int exp, Object value) {try {if (!client.set(key, exp, value)) {System.err.println("set error, key is " + key + " value is " + value);}} catch (TimeoutException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();} catch (MemcachedException e) {e.printStackTrace();}}public void delete(String key) {try {client.delete(key);} catch (TimeoutException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();} catch (MemcachedException e) {e.printStackTrace();}}public void update(String key, final Object value) {try {client.cas(key, 10, new CASOperation<Object>() {public int getMaxTries() {return 1;}public Object getNewValue(long currentCAS, Object currentValue) {return value;}});} catch (TimeoutException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();} catch (MemcachedException e) {e.printStackTrace();}}public Object get(String key) {try {return client.get(key);} catch (TimeoutException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();} catch (MemcachedException e) {e.printStackTrace();}return null;}public void addServer(String server, int port, int weight) {try {client.addServer(server, port, weight);} catch (IOException e) {e.printStackTrace();}}public void removeServer(String hostList) {client.removeServer(hostList);}}这个类做了一个特别简单的封装,包括了增删改查还有动态添加删除节点,其实就是简单得使用了下api,其实api很多,大家可以自己查api
下面是一个测试类
public static void main(String[] args) {//testCRUD();testSerObject();}public static void testCRUD() {String address = "xx01:11211 xx02:11211 xx03:11211";Cache cache = new Cache(address, new int[] { 1, 1, 1 });cache.set("hello", 10, "test");System.out.println(cache.get("hello"));cache.update("hello", "ssss");System.out.println(cache.get("hello"));cache.delete("hello");System.out.println(cache.get("hello"));}public static void testSerObject() {String address = "arreat00:11211 arreat01:11211 arreat02:11211";Cache cache = new Cache(address, new int[] { 1, 1, 1 });User user = new User();user.setId(1);user.setMobile("13564316073");user.setEmail("qianjc@unionpaysmart.com");user.setPasswd("ttt");user.setUserName("qianjc");List<String> asseat = new ArrayList<String>();asseat.add("asseat0");asseat.add("asseat1");Map<String, String> car = new HashMap<String, String>(); car.put("car1", "val1");car.put("car2", "val2");user.setAsseat(asseat);user.setCar(car);user.setBook(buildBook(1, "memcached进阶", "smart出版"));user.setBooks(buildBooks());//cache.set("user1", 0, user);System.out.println(cache.get("user1"));}public static Book buildBook(int id, String name, String pulish) {Book book = new Book();book.setId(id);book.setName(name);book.setPulish(pulish);return book;}public static List<Book> buildBooks() {List<Book> books = new ArrayList<Book>();for (int i = 0; i < 2; ++i) {books.add(buildBook(i, "memcached进阶" + i, "smart出版" + i));}return books;}}可以看到memcached不仅仅支持简单String,int等类型,只要实现了Serializable接口的java序列化对象都可以
具体怎么使用可以查api,还是比较简单的!!
也可以参考一篇博客:http://blog.csdn.net/ljhabc1982/article/details/6338898
0 0
- memcached-java客户端xmemcached简单使用
- Memcached客户端-XMemcached使用
- memcached-java客户端xmemcached使用总结
- memcached-java客户端xmemcached使用总结
- memcached-java客户端xmemcached使用总结 & 与Spring 集成
- 使用memcached客户端Xmemcached与Spring整合
- 使用Xmemcached客户端操作Memcached缓存系统
- Memcached之客户端-xmemcached(5)
- xmemcached 客户端使用
- XMemcached一个新的memcached客户端
- Xmemcached 的简单使用
- xmemcached简单使用
- Memcached在CentOS环境中的安装使用及Xmemcached客户端的使用
- Memcached java 客户端简单实例
- memcached-Xmemcached
- Java Memcached Client——Xmemcached 1.2.1公布
- 开源java memcached client——xmemcached 1.3.2发布
- Xmemcached学习笔记二(简单使用)
- iOS6新特征:UICollectionView高级使用示例之CircleLayout
- windows8下RmySQL包的使用
- 煽风点火的丰厚的和
- UML中用例图的作用及画法
- PostgreSQL客户端验证
- memcached-java客户端xmemcached简单使用
- 批量下载ABAP程序和表结构
- Activity的启动模式(android:launchMode)
- fdgd
- 放大舒服撒发放
- 获取指定pid的调用堆栈
- 服务器和应用系统迁移方案
- 使用JsonCpp在android NDK中解析Json
- <s:iterator>循环嵌套list,内层list依赖外层属性