这段时间解决系统的瓶颈,首要是对memcache的优化,今天得空将目前在用的memcache整理了一下,贴个客户端实体类-----这里设置的参数都是通过配置文件的。道理很简单,以戒后用
(注:http://code.google.com/p/memcache-client-forjava/downloads/list 本次使用的是来自这里的封装包,网上结论说alisoft memcache 性能不高,经高压下使用,个人感觉确实不妥。
可考虑使用 http://www.whalin.com/memcached/#download )
package yixun.wap.cache;
/** *//**
* @deprecated mem-cache缓存类 备用类
* @author Administrator
* @date 2009-11-15 14:08:02 更新
*/
import java.util.Date;
import com.alisoft.xplatform.asf.cache.memcached.client.MemCachedClient;
import com.alisoft.xplatform.asf.cache.memcached.client.SockIOPool;
import yixun.wap.resourcesload.MemcacheConfig;
public class MemCache {
private static MemCachedClient mcc = null;
static {
mcc = new MemCachedClient();
Boolean nagle = false;
Boolean ce = true;
// 获取socke连接池的实例对象
SockIOPool pool = SockIOPool.getInstance();
// 设置服务器信息
pool.setServers(MemcacheConfig.getServers().split(";"));
String[] weights = MemcacheConfig.getWeights().split(";");
Integer[] wei = new Integer[weights.length];
for (int i = 0; i < weights.length; i++) {
wei[i] = Integer.parseInt(weights[i]);
}
pool.setWeights(wei);
// 设置初始连接数、最小和最大连接数以及最大处理时间
pool.setInitConn(Integer.parseInt(MemcacheConfig.getInitconn()));
pool.setMinConn(Integer.parseInt(MemcacheConfig.getMinconn()));
pool.setMaxConn(Integer.parseInt(MemcacheConfig.getMaxconn()));
pool.setMaxIdle(Long.parseLong(MemcacheConfig.getMaxidle()));
// 设置主线程的睡眠时间
pool.setMaintSleep(Long.parseLong(MemcacheConfig.getMaintsleep()));
if (!MemcacheConfig.getNagle().equals("false")) {
nagle = true;
}
// 设置TCP的参数,连接超时等
pool.setNagle(nagle);
pool.setSocketTO(Integer.parseInt(MemcacheConfig.getSocketTO()));
pool.setSocketConnectTO(Integer.parseInt(MemcacheConfig.getSocketConnectTO()));
// 初始化连接池
pool.initialize();
// 压缩设置,超过指定大小(单位为K)的数据都会被压缩
if (MemcacheConfig.getCompressEnable().equals("false")) {
ce = false;
}
mcc.setCompressEnable(ce);
mcc.setCompressThreshold(Long.parseLong(MemcacheConfig.getCompressThreshold()));
}
private MemCache(){
}
private static MemCache instance;
public synchronized static MemCache getInstance() {
if(instance == null) {
return new MemCache();
}
return instance;
}
// 在memcache中对数据进行存、取、删、更新
public boolean set(String key, Object value) {
return mcc.set(key, value);
}
public boolean set(String key, Object value, String time) {
return mcc.set(key, value, new Date(Long.parseLong(time)));
}
public Object get(String key) {
return mcc.get(key);
}
public boolean delete(String key) {
return mcc.delete(key);
}
public boolean update(String key, Object obj) {
return mcc.replace(key, obj);
}
public boolean update(String key, Object value, Date expiry) {
return mcc.replace(key, value, expiry);
}
public void flush_all() {
mcc.flushAll();
}
public MemCachedClient getMcc() {
return mcc;
}
public void setMcc(MemCachedClient mcc) {
this.mcc = mcc;
}
}
分享到:
相关推荐
《深入解析memcacheclient-2.0:跨平台C++客户端的Bug修复与优化》 在当今的软件开发中,缓存系统起着至关重要的作用,它们能够显著提高应用程序的性能,减少数据库负载。其中,Memcached是一款广泛使用的分布式...
谷歌对于memcached提供给Java的客户端有spymemcached、xmemcached、memcache-client-forjava等多种形式,但memcache-client-forjava是使用最多、最稳定的。里边的文件和文档(有中文文档)都是从官网下载的,里边的...
在这个主题中,我们将深入探讨"MemCache Client端类库",特别是针对C++环境下的使用和修改。 在C++编程中,为了使用MemCache服务,我们需要一个能够与之通信的客户端库。通常,这样的库会包含一系列的类和函数,...
MemCacheClient是一个C++实现的Memcached客户端库,它为C++开发者提供了便捷地与Memcached服务器进行交互的接口。Memcached是一种分布式内存缓存系统,常用于减轻数据库的负载,提高应用程序的性能,尤其在高并发...
Java开发中的Memcached原理及实现主要涉及分布式缓存系统、内存管理和网络通信等多个技术领域。Memcached是一款高性能、分布式内存对象缓存系统,用于减轻数据库负载,提高网站或应用程序的响应速度。在Java环境中,...
本篇文章将围绕"Java Memcache使用例子"这一主题,详细介绍如何在Java中使用Memcached。 首先,确保您已经在本地正确安装了Memcached。通常,Memcached可以在Linux、macOS和Windows等操作系统上运行。你可以通过...
在Java开发中,我们通常使用Java客户端来与Memcache服务器进行交互。以下是一些关于如何在Java中实现Memcache客户端的重要知识点: 1. **Java Memcache客户端库**:在Java中,常用的Memcache客户端库有Xmemcached和...
Java Memcache 是一个高效、广泛使用的分布式内存缓存系统,专为加速动态Web应用程序而设计。在JDK 1.4环境下使用Java Memcache,意味着我们需要一个兼容此版本JVM的客户端库,以便与Memcache服务器进行通信。在这个...
Java社区提供了多种memCache客户端,如spymemcached、xmemcached、memcached-client等。其中,spymemcached是较常用的一款,它由Danga Interactive开发并开源,具有简单易用、性能稳定的特点。 ### 二、...
$memcache = new MemcacheClient(); $memcache->connect('localhost', 11211); $value = $memcache->get('key'); $memcache->set('key', 'value', 60); // 存储'key',值为'value',过期时间为60秒 $memcache->close...
Java Memcached 使用详解 Memcached 是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载,提升数据访问速度。在Java中,我们可以使用各种客户端库来与Memcached进行交互,例如...
【MemCache客户端用户指南】 MemCache客户端用户指南主要面向开发者,提供关于如何配置和使用MemCache客户端的详细信息。MemCache是一种高效的分布式内存缓存系统,用于存储和检索数据,以减轻数据库的压力并提高...
### Java版Memcache缓存管理与开发 #### Memcache简介及其在高流量网站中的作用 在高流量网站中,为了缓解数据库的压力并提高网站响应速度,通常会采用Memcache作为缓存解决方案。Memcache是一种高性能、分布式...
Memcache 学习文档 for Java Demo Memcache 是一套分布式的高速缓存系统,由 LiveJournal 的 Brad Fitzpatrick 开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站...
本篇文章将详细介绍两个常用的Java Memcached客户端:xmemcached和memcache-client-forjava。 **1. xmemcached** xmemcached是由Ketoo开发的一个高性能、高可用性的Java Memcached客户端。它提供了丰富的API,支持...
JAVA遍历Memcache缓存中所有的KEY的方法,可以直接引入使用。
介绍:memcache缓存的一个项目。只是简单的增删盖查。 使用前,应该先安装memcache。如果是window上就不需要安装...这里又加入了很多spring的jar包,是应为TestSpringMemcache.java中把memcache整合到spring中。
描述中提到"关于memcache 使用的 客户端是memcached client for java 的 JAVA工程",这意味着这个压缩包可能包含了一个Java项目,该项目专门设计用来连接并操作memcached服务器。Java客户端库允许开发人员在Java应用...
"JAVA的memcache服务器安装以及相关最新jar包" 这个标题指出我们要探讨的是在Java环境中如何安装并使用Memcached服务器,同时提到了与Java接口相关的最新jar包。Memcached是一个高性能、分布式内存对象缓存系统,常...