import java.util.Calendar;
import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
import com.zte.ssb.framework.SSBBus;
import com.zte.ssb.framework.common.log.Log;
public class MemCachedUtil
{
/**
* 日志对象
*/
private static final Log log = SSBBus.getLog(MemCachedUtil.class);
protected static MemCachedClient mcc = new MemCachedClient();
protected static MemCachedUtil memCached = new MemCachedUtil();
// 设置与缓存服务器的连接池
static
{
try
{
// 服务器列表和其权重
String[] servers = {"10.204.82.45:11211"};
//{"10.204.82.45:11211"};192.168.174.172: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);
// 初始化连接池
// TODO cache(2011-11-14) 初始化连接池
pool.initialize();
// 压缩设置,超过指定大小(单位为K)的数据都会被压缩
// mcc.setCompressEnable(true);
// mcc.setCompressThreshold(64 * 1024);
} catch (Exception e) {
log.error("加载memcache失败\n"+e.getMessage());
}
}
/**
* 保护型构造方法,不允许实例化!
*
*/
protected MemCachedUtil()
{
}
/**
* 获取唯一实例.
*
* @return
*/
public static MemCachedUtil getInstance()
{
return memCached;
}
/**
* 添加一个指定的值到缓存中.
*
* @param key
* @param value
* @return
*/
public boolean add(String key, Object value)
{
Calendar ca = Calendar.getInstance();
ca.add(Calendar.HOUR, 2);
if(mcc.get(key)!=null){
return mcc.replace(key, value, ca.getTime());
}else{
return mcc.add(key, value, ca.getTime());
}
// Calendar ca = Calendar.getInstance();
// ca.add(Calendar.HOUR, 2);
// return true;
}
public boolean add(String key, Object value, Date expiry)
{
try
{
return mcc.add(key, value, expiry);
} catch (Exception e) {
return false;
}
}
public boolean replace(String key, Object value)
{
Calendar ca = Calendar.getInstance();
ca.add(Calendar.HOUR, 2);
return mcc.replace(key, value, ca.getTime());
}
public boolean replace(String key, Object value, Date expiry)
{
try
{
return mcc.replace(key, value, expiry);
} catch (Exception e) {
return false;
}
}
public void clear()
{
}
/**
* 描述 : <删除缓存>
*
* @param key
*/
public void delete(String key)
{
try
{
mcc.delete(key);
} catch (Exception e) {
}
}
/**
* 根据指定的关键字获取对象.
*
* @param key
* @return
*/
public Object get(String key)
{
try
{
return mcc.get(key);
} catch (Exception e) {
return null;
}
// return null;
}
public static void main(String[] args)
{
MemCachedUtil cache = MemCachedUtil.getInstance();
//cache.delete("MENUSLIST");
//cache.delete("tuijian_zhuanti");
//cache.delete("MENUSLIST");
//cache.delete("MONOPOLYMENUS");
}
}
分享到:
相关推荐
Memcache是一种广泛应用于Web开发中的分布式内存缓存系统,它能有效地缓解数据库的负载,提高网站性能。...为了充分利用这类工具,建议定期检查和分析监控数据,根据实际情况做出相应的调整和优化。
标题中的“自己写的一个php memcache操作类”指的是一个自定义的PHP类,用于与Memcached缓存系统进行交互。Memcached是一种广泛使用的分布式内存对象缓存系统,它能够提高Web应用的性能,通过存储数据在内存中,避免...
JAVA遍历Memcache缓存中所有的KEY的方法,可以直接引入使用。
**Memcached 图形管理工具详解** Memcached 是一款高性能、分布式的内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载,...在日常运维中,合理利用这类工具,对于提升服务质量、降低故障率具有重要意义。
Memcache操作类是PHP中与Memcache进行交互的工具,让我们深入探讨一下如何使用这个类以及它提供的各种功能。 1. **连接Memcache服务器** 在使用Memcache操作类之前,你需要先建立与Memcache服务器的连接。可以使用...
通过上述知识点,我们可以看出,该memcacheQueue类提供了一个在PHP中操作Memcache队列的简单而强大的工具。开发者可以利用这个类的实例来构建高效的数据处理流程,如消息队列、缓存策略等。在使用这个类的时候,...
在Go语言中,工具类是开发者为了方便复用和简化代码而创建的模块,它们通常包含特定功能的函数集合。本篇文章将详细讲解标题和描述中提到的几个关键工具类,包括JSON处理、XML处理、Redis数据库操作、Memcached缓存...
压缩包子文件的文件名称列表中,`memadmin-1.0.8.tar.gz`可能是一个管理Memcache服务器的工具,它可以帮助监控和管理Memcached实例,例如添加、删除和查看缓存项,或者查看服务器状态等。 总的来说,PHP 5.3版本的...
- 安装完扩展后,你可以在PHP代码中通过`memcache`类来使用Memcache服务。例如: ```php $memcache = new Memcache; $memcache->connect('localhost', 11211); // 默认的Memcache服务器端口是11211 $memcache->...
在Windows环境下,监控和调试Memcache可以通过第三方工具实现,如Memcached Manager,它提供了一个直观的图形界面,可以查看连接状态、缓存统计信息以及执行基本的操作。 总结来说,Memcache是一个高效、轻量级的...
总结来说,"MemCache Client端类库"是C++开发者用来与MemCache服务器交互的重要工具。对于VS环境下的开发,适应性和兼容性是关键问题。通过修改和优化,我们可以创建一个定制化的客户端,以满足特定项目的需求,提升...
标题中的“PHP实现的...总的来说,这个PHP实现的memcache环形队列类是一个实用的工具,它结合了memcache的高性能缓存能力和环形队列的数据结构特性,可用于处理需要高效并发读写的场景,如消息队列、任务调度等。
- 首先,你需要在项目中引入相应的JAR文件,可以通过Maven或Gradle等构建工具添加依赖,或者手动将JAR文件添加到项目的类路径中。 - 然后,初始化Memcache客户端,配置服务器地址和端口,如: ```java Memcached...
解决这类问题通常需要查阅官方文档、查找类似问题的解决方案,或者尝试不同版本的Memcache扩展,直到找到一个能与当前PHP版本兼容的版本。 总之,Memcache是一个强大的缓存系统,PHP的Memcache扩展则为PHP开发者...
在PHP代码中,可以使用`Memcache`类来连接到Memcached服务器,创建、读取、更新和删除缓存中的键值对。 例如,以下是一段基本的PHP代码示例,演示如何连接到Memcached服务器并设置一个缓存项: ```php $memcache ...
7. **使用Memcache**:现在你可以使用Memcache类的各种方法来存储和检索数据,如`set()`, `get()`, `delete()`等,以提升应用程序的性能。 请注意,实际操作时可能需要根据你的具体环境进行调整,例如,如果你的...
3. **使用Memcached客户端**:一旦安装完成,可以使用`Memcached`类来与Memcached服务器交互,进行数据存储和检索。 综上所述,`php_memcache.dll`扩展文件集合包是提升PHP应用性能的关键工具,特别是当处理大量...
Visual C++ 14编译器,即Visual Studio 2015,是用来构建php_memcache扩展的工具链,这意味着该扩展是使用这个编译器和对应的运行时库构建的,因此需要确保目标系统上安装了相应的VC++ Redistributable。 压缩包内...
《PHP与Memcache扩展:深入理解...总结,PHP 5.6的Memcache扩展(php_memcache.dll)是提升Web应用性能的重要工具。理解其工作原理,熟练掌握使用方法,并结合最佳实践,可以显著提升PHP应用的响应速度和用户体验。