MemCached 安装日志
关键字: memcached
1、下载memcached-1.2.1.tar.gz和libevent-1.3b.tar.gz;
2、安装libevent
tar xvfz libevent-1.3b.tar.gz
cd libevent-1.3b
./configure && make
make install
3、安装memcache
tar xvfz memcached-1.2.1.tar.gz
cd memcached-1.2.1
./configure
make && make install
4、将libevent安装的/usr/local/lib输出到引用库路径
# vi ~/.bash_profile
加入如下一行:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
5、启动(安装后位置:/usr/local/bin/memcached)
memcached -d -m 128 -l 192.168.0.50 -p 11211 -u root
即以root用户,分配最大2GM内存启动memcache
memcached -d -m 128 -l 192.168.0.50 -p 11212 -u root
在另外一个端口11212启动另外一个memcache实例
* Created on 2006-7-24
* 连接缓存服务器
* Window - Preferences - Java - Code Style - Code Templates
*/
public class MemCacheWorkBench {
private static final String POOL_NAME = "danqoo";
private static final String CACHE_SERVER = "211.155.224.112:11211";
private static MemCachedClient client = null;
private static boolean USE_MEMCACHE_FLAG = true;
public static MemCachedClient getMemCachedClient() {
if (USE_MEMCACHE_FLAG){
if (client == null) {
String[] serverlist = { CACHE_SERVER };
SockIOPool pool = SockIOPool.getInstance(POOL_NAME);
pool.setServers(serverlist);
// 设置初始连接数、最小和最大连接数以及最大处理时间
pool.setInitConn( 5 );
pool.setMinConn( 5 );
pool.setMaxConn( 250 );
pool.setMaxIdle( 1000 * 60 * 30);
// 设置主线程的睡眠时间
pool.setMaintSleep( 30 );
// 设置TCP的参数,连接超时等
pool.setNagle( false );
//连接建立后对超时的控制
pool.setSocketTO( 3000 );
//连接建立时对超时的控制
pool.setSocketConnectTO( 0 );
pool.initialize();
client = new MemCachedClient();
// 压缩设置,超过指定大小(单位为K)的数据都会被压缩
client.setCompressEnable(true);
client.setCompressThreshold(4096);
client.setPrimitiveAsString(true);
client.setPoolName(POOL_NAME);
}
return client;
}else{
return null;
}
}
}
/*
* Created on 2006-7-24
* 单子模式实加载一个对象
* Window - Preferences - Java - Code Style - Code Templates
*/
public class MemCacheUtil {
public static String indeKey = "danqoo.index";
private static Integer OVER_TIME = 5*60*1000;
private static Log logger = LogFactory.getLog(MemCacheUtil.class);
private static MemCachedClient mc = MemCacheWorkBench.getMemCachedClient();
public static Object get(String key) {
if (mc != null && key != null && key.trim().length() > 0)
return mc.get(key);
else
return null;
}
public static void set(String key, Object value) {
if (mc != null && key != null && key.trim().length() > 0)
mc.set(key, value,new Date(OVER_TIME));//过期时间设置默认
}
public static void set(String key, Object value,Date date) {
if (mc != null && key != null && key.trim().length() > 0)
mc.set(key, value,date);
}
public static void delete(String key) {
if (mc != null && key != null && key.trim().length() > 0)
mc.delete(key);
}
public static void clear() {
if (mc != null){
mc.flushAll();
}
}
public static String createKey(String id,Map map){
StringBuffer sbuf = new StringBuffer();
sbuf.append(id);
for (Object key : map.keySet()) {
sbuf.append(".").append(key).append("=").append(map.get(key));
}
return Utilities.encodePassword(sbuf.toString(), "md5");
}
public static String createKey(String id,String paraName,String value){
StringBuffer sbuf = new StringBuffer();
sbuf.append(id).append(".").append(paraName).append("=").append(value);
return Utilities.encodePassword(sbuf.toString(), "md5");
}
public static String createKey(String id){
return Utilities.encodePassword(id.toString(), "md5");
}
}
/**
* @Dao层运用缓存机制
* @date:2008-9-17
* @time:上午09:42:03
*/
public class AdvPicDaoImpl extends SqlMapClientDaoSupport implements IAdvPicDao{
public AdvPicBean getAdvPic(int id) {
return (AdvPicBean)this.getSqlMapClientTemplate().queryForObject("advpic.getAdvPic",id);
}
public void setAdvPic(AdvPicBean bean) {
this.getSqlMapClientTemplate().insert("advpic.setAdvPic",bean);
}
public List<AdvPicBean> getAdvice(int begin,int advType,int advFileType)
{
Map map=new HashMap();
map.put("begin", begin);
map.put("adType", advType);
map.put("adFileType", advFileType);
String key = MemCacheUtil.createKey("advpic.getAdvice",map);
List<AdvPicBean> list = (List<AdvPicBean>) MemCacheUtil.get(key);
if (list == null ){
list = this.getSqlMapClientTemplate().queryForList("advpic.getAdvice",map);
MemCacheUtil.set(key, list);
}
return list;
}
public List<FLinkForm> findFLinkList(Integer num) {
// return this.getSqlMapClientTemplate().queryForList("advpic.findFLinkList",num);
String key = MemCacheUtil.createKey("advpic.findFLinkList","num",Integer.toBinaryString(num));
Object obj = MemCacheUtil.get(key);
if (obj !=null){
return (List)obj;
}else{
List value = this.getSqlMapClientTemplate().queryForList("advpic.findFLinkList",num);
MemCacheUtil.set(key, value);
return value;
}
}
public FLinkForm getAdvertiseCodeById(String id) {
return (FLinkForm)this.getSqlMapClientTemplate().queryForObject("advpic.getAdvertiseCodeById", id);
}
public WordAdBean getWordAdByKey(String key) {
return (WordAdBean)this.getSqlMapClientTemplate().queryForObject("advpic.getWordAdByKey", key);
}
}
分享到:
相关推荐
接下来,我们来看一个简单的Java Action类,名为`MemcachedAction.java`,展示了如何在项目中使用Memcached服务: ```java package fi.ltrade.memcached; import java.io.Serializable; import java.util....
### Java使用Memcached简单教程 #### 一、简介 Memcached是一个高性能的分布式内存对象缓存系统,通过减轻数据库负载来加速动态Web应用,提高网站的浏览速度。它通过在内存中缓存数据和对象来减少读取数据库的次数...
Java与Memcached的结合使用是分布式缓存领域中常见的技术实践。Memcached是一款高性能、分布式内存对象缓存系统,它可以将数据存储在内存中,从而加快读取速度,减轻数据库的负担。Java作为广泛使用的编程语言,有...
- **缓存策略选择**:根据业务需求选择合适的缓存系统,如简单缓存场景可选用Memcached,复杂数据结构或需持久化的场景则考虑Redis。 - **缓存失效策略**:除了LRU外,还可以采用Time-To-Live(TTL)、手动清除等方式...
`MemCachedManager.java`可能是库中的一个类,用于管理Memcached实例,帮助用户更方便地连接、操作和管理缓存。 这个库的核心功能包括: 1. **连接管理**:库提供了一种方式来建立和维护到Memcached服务器的连接。...
这暗示我们将探讨如何在Java应用程序中集成和使用Memcached作为缓存解决方案。 **Memcached简介** Memcached是一款高性能、分布式的内存对象缓存系统,用于减少数据库负载,提高Web应用的响应速度。它通过将数据...
总的来说,Java Memcached客户端为Java开发者提供了简单易用的接口,以实现高效、可扩展的分布式缓存功能。通过这个压缩包,开发者可以获得完整的源码、库文件和文档,以便在自己的项目中充分利用Memcached的优势。
Java Memcached 客户端是Java开发者用于与Memcached分布式内存缓存系统交互的一个库。在版本2.6.3中,它提供了高效且可靠的连接管理,以及对Memcached服务器的全面支持。这个压缩包“java_memcached-release_2.6.3....
以下是一个简单的Java实例,演示如何使用Spymemcached连接到Memcached服务器并执行基本操作: 1. **添加依赖** 首先,你需要在项目中添加Spymemcached的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下...
本文将深入讲解如何在Java环境下集成和使用Memcached。 首先,我们需要在Java项目中引入Memcached的客户端库。常见的Java Memcached客户端有spymemcached和xmemcached,这里以spymemcached为例。可以通过Maven在`...
Java Memcached客户端是Java开发者用来与Memcached分布式内存缓存系统进行交互的工具。这个`java_memcached-release_2.6.3.rar`压缩包包含了用于Java客户端开发所需的全部依赖库,使得开发者能够轻松地在Java应用中...
使用Java Memcached客户端时,开发者需要实例化一个Memcached客户端对象,配置它连接到一个或多个Memcached服务器。然后,他们可以使用提供的方法来存储和检索数据,例如`set(key, timeout, value)`用于设置键值对,...
Java连接Memcached服务器是开发过程中常见的一环,尤其是在构建分布式系统时,利用Memcached作为缓存服务可以显著提升数据访问速度。Memcached是一款高性能、分布式内存对象缓存系统,能够临时存储键值对数据,减轻...
本实例将带你深入了解如何安装 Memcached 客户端,并学习如何使用它来缓存数据以及清除缓存内容。 ### 一、安装 Memcached 在开始使用 Memcached 之前,你需要先在服务器上安装它。安装过程可能因操作系统而异,...
Java连接Memcached是一种常见的缓存操作,特别是在处理大数据量或者需要快速响应的Web应用程序中。Memcached是一款高性能、分布式内存对象缓存系统,用于减轻数据库负载,提高网站性能。下面我们将详细探讨如何在...
在Java中使用memcached作为缓存系统,有多个关键点需要注意。memcached是一个高性能的分布式内存对象缓存系统,能够显著提升Web应用的性能。以下是对Java与memcached集成及使用的一些重要知识点: 1. **依赖库**: ...
Java使用Memcached是一种常见的缓存策略,特别是在高并发、大数据量的应用场景中,Memcached能够有效地提高系统的响应速度和性能。下面将详细讲解如何在Java项目中集成和使用Memcached,以及配置和测试过程。 首先...
**标题:“memcached java简单实例”** 在Java开发中,我们常常会遇到缓存的需求,以提高应用程序的性能。Memcached是一款高效的分布式内存对象缓存系统,它能够将数据存储在内存中,从而减少对数据库的访问。这篇...
在J2EE项目中,通常使用Java的Memcached客户端库(如spymemcached或xmemcached)来与Memcached服务器交互。以下是一般步骤: 1. 添加客户端库依赖:在项目的Maven或Gradle配置文件中引入对应的Memcached客户端库。 ...
Java工程中的Memcached连接服务端测试是开发过程中的一项重要任务,尤其对于分布式系统而言,缓存服务如Memcached能够显著提升应用性能。Memcached是一种高性能、分布式的内存对象缓存系统,广泛应用于减轻数据库...