Memcache的Java客户端接口参见:http://code.google.com/p/memcached/wiki/Clients。示例程序如下:
(1)建立Manager类
package com.alisoft.sme.memcached;
import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class MemCachedManager {
// 创建全局的唯一实例
protected static MemCachedClient mcc = new MemCachedClient();
protected static MemCachedManager memCachedManager = new MemCachedManager();
// 设置与缓存服务器的连接池
static {
// 服务器列表和其权重
String[] servers = { "127.0.0.1:11211" };
Integer[] weights = { 3 };
// 获取socke连接池的实例对象
SockIOPool pool = SockIOPool.getInstance();
// 设置服务器信息
pool.setServers(servers);
pool.setWeights(weights);
// 设置初始连接数、最小和最大连接数以及最大处理时间
pool.setInitConn(5);
pool.setMinConn(5);
pool.setMaxConn(250);
pool.setMaxIdle(1000 * 60 * 60 * 6);
// 设置主线程的睡眠时间
pool.setMaintSleep(30);
// 设置TCP的参数,连接超时等
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0);
// 初始化连接池
pool.initialize();
// 压缩设置,超过指定大小(单位为K)的数据都会被压缩
mcc.setCompressEnable(true);
mcc.setCompressThreshold(64 * 1024);
}
protected MemCachedManager() {
}
public static MemCachedManager getInstance() {
return memCachedManager;
}
public boolean add(String key, Object value) {
return mcc.add(key, value);
}
public boolean add(String key, Object value, Date expiry) {
return mcc.add(key, value, expiry);
}
public boolean replace(String key, Object value) {
return mcc.replace(key, value);
}
public boolean replace(String key, Object value, Date expiry) {
return mcc.replace(key, value, expiry);
}
public Object get(String key) {
return mcc.get(key);
}
public static void main(String[] args) {
MemCachedManager cache = MemCachedManager.getInstance();
cache.add("hello", 234);
System.out.print("get value : " + cache.get("hello"));
}
}
(2)建立数据对象
package com.alisoft.sme.memcached;
import java.io.Serializable;
public class TBean implements Serializable {
private static final long serialVersionUID = 1945562032261336919L;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
--------------------------------------------------------------------------------------------------
创建测试用例:
package com.alisoft.sme.memcached.test;
import junit.framework.TestCase;
import org.junit.Test;
import com.alisoft.sme.memcached.MemCachedManager;
import com.alisoft.sme.memcached.TBean;
public class TestMemcached extends TestCase {
private static MemCachedManager cache;
@Test
public void testCache() {
TBean tb = new TBean();
tb.setName("E网打进");
cache.add("bean", tb);
TBean tb1 = (TBean) cache.get("bean");
System.out.println("name=" + tb1.getName());
tb1.setName("E网打进_修改的");
tb1 = (TBean) cache.get("bean");
System.out.println("name=" + tb1.getName());
}
@Override
protected void setUp() throws Exception {
super.setUp();
cache = MemCachedManager.getInstance();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
cache = null;
}
}
分享到:
相关推荐
只是简单的增删盖查。 使用前,应该先安装memcache。如果是window上就不需要安装libevent, linux上需要安装libevent。具体安装请到资料中查找。 memcache客户端:xmemcached-2.0.0.jar 这里又加入了很多spring的...
NULL 博文链接:https://globle.iteye.com/blog/1181984
本篇文章将围绕"Java Memcache使用例子"这一主题,详细介绍如何在Java中使用Memcached。 首先,确保您已经在本地正确安装了Memcached。通常,Memcached可以在Linux、macOS和Windows等操作系统上运行。你可以通过...
包含最简单的memcache的使用,测试类MemCached.java; 在此基础上增加了memcahce和spring的整合,顺便使用了ibati,测试类SpringMemcacheTest.java 代码简洁,适合研究,参考
四、Memcache的应用实例 在"memcache_project"这个项目中,我们可以看到如何在实际开发中使用Memcache。通常,开发者会先安装和配置Memcache服务,然后在代码中引入相应的库,如PHP的`php-memcached`扩展。以下是一...
- **mcmon**:一个简单的命令行工具,提供实时查看Memcached服务器的状态,如命中率、内存使用、当前连接等。 - **memcached-top**:类似于`top`命令,提供实时的动态视图,显示每个Memcached实例的统计数据。 - ...
文件中还包含了一个简单的自定义类`Stu`的定义,用于演示如何将自定义类的对象存储到Memcache中,并从中获取信息: ```php class Stu { private $name = "qq"; private $age = 20; public function getinfo() {...
例如,使用spymemcached,可以创建一个MemcachedClient实例: ```java MemcachedClient client = new MemcachedClient(new BinaryConnectionFactory(), AddrUtil.getAddresses("127.0.0.1:11211")); ``` 6. **...
- **命令接口**:Memcache提供了简单的文本协议,可以通过telnet命令行工具直接与服务交互,进行存取操作。 - **基本操作**:主要包括`set`(存储数据)、`get`(获取数据)、`delete`(删除数据)和`increment/...
- 配置Memcache的服务器地址和端口,然后在代码中创建并初始化客户端实例,即可开始使用Memcache服务。 6. **使用示例** - 假设我们使用spymemcached,首先引入依赖: ```xml <groupId>net.spy</groupId> ...
4. Memcached不互相通信的分布式:Memcached采用分布式架构,但各个实例之间不直接通信,它们通过客户端程序进行数据存取。 安装Memcached时,需要下载其安装包,并执行安装和启动程序。客户端连接Memcached时,...
下面是一个简单的使用示例,演示如何创建Memcache对象、连接到服务器、获取版本号: ```php $memcache = new Memcache; if (!$memcache->connect('localhost', 11211)) { die("Could not connect"); } $version =...
在大型分布式系统中,单个Memcache实例可能无法满足需求,这时需要进行分布式部署。通过一致性哈希算法,可以将数据均匀地分配到多个Memcache节点上,当有新的节点加入或离开时,尽可能少地改变数据分布,保持系统的...
在PHP中使用Memcache,你需要引入`memcache`库,然后创建一个连接到Memcache服务器的实例。下面是一个简单的示例: ```php $memcache = new Memcache; $memcache->connect('localhost', 11211) or die("无法连接到...
配置完成后,可以创建并初始化Memcache客户端实例: ```csharp using (var client = new MemcachedClient(config)) { // 客户端操作代码 } ``` 四、存储数据 使用Memcache客户端,我们可以轻松地存储键值对。有两...
其中,spymemcached是较常用的一款,它由Danga Interactive开发并开源,具有简单易用、性能稳定的特点。 ### 二、spymemcached简介 spymemcached是Java版的memcached客户端,它通过Socket通信协议与memcached...
标题中的“PHP实现的memcache环形队列类实例”是指使用PHP编程语言设计的一个类,该类专门用于实现基于memcache的环形队列功能。环形队列是一种特殊的线性数据结构,其特点是队列的首尾相连形成一个闭合的环,当队列...
memcache更适合简单的key-value存储,而Redis提供了更丰富的数据结构和更强大的功能,但可能消耗更多的内存。 总结,session共享是多服务器环境中的关键问题,memcache和Redis都是有效的解决方案。通过将Session...
通过上述知识点,我们可以看出,该memcacheQueue类提供了一个在PHP中操作Memcache队列的简单而强大的工具。开发者可以利用这个类的实例来构建高效的数据处理流程,如消息队列、缓存策略等。在使用这个类的时候,...