简单的基本命令
Set:set 命令用于向缓存添加新的键值对。如果键已经存在,则之前的值将被替换。
Add:仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应 NOT_STORED。
Replace:仅当键已经存在时,replace 命令才会替换缓存中的键。如果缓存中不存在键,那么您将从 memcached 服务器接受到一条 NOT_STORED 响应
Get:get 命令用于检索与之前添加的键值对相关的值。您将使用 get 执行大多数检索操作。
Delete:最后一个基本命令是 delete。delete 命令用于删除 memcached 中的任何现有值。您将使用一个键调用delete,如果该键存在于缓存中,则删除该值。如果不存在,则返回一条NOT_FOUND 消息。
Gets: gets 命令的功能类似于基本的 get 命令。两个命令之间的差异在于,gets 返回的信息稍微多一些:64 位的整型值非常像名称/值对的 “版本” 标识符。
Cas :cas(check 和 set)是一个非常便捷的 memcached 命令,用于设置名称/值对的值(如果该名称/值对在您上次执行 gets 后没有更新过)。它使用与 set 命令相类似的语法,但包括一个额外的值:gets 返回的额外值。
flush_all :flush_all 是最后一个要介绍的命令。这个最简单的命令仅用于清理缓存中的所有名称/值对。如果您需要将缓存重置到干净的状态,则 flush_all 能提供很大的用处
创建java项目应用memcached
首先到http://danga.com/memcached/下载memcached的windows版本和java客户端jar包,解压后我放到D盘下。首先是安装运行memcached服务器,我们将memcached的jar解压后,进入其目录,然后运行如下命令:
D:\ memcached1.4> memcached.exe -d install
在eclipse中建立java项目,导入commons-pool-1.5.6.jar,java_memcached-release_2.6.1.jar,slf4j-api-1.6.1.jar,slf4j-simple-1.6.1.jar四个jar包
项目代码入下
package com.yun.Memcahed.cache;
import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
/**
* ClassName:Mycache <br/>
* Function: TODO ADD FUNCTION. <br/>
* Reason: TODO ADD REASON. <br/>
* Date: 2013-1-11 上午11:08:05 <br/>
* @version
* @since JDK 1.6
* @see
*/
public class Mycache {
// 创建一个 memcached 客户端对象
private static MemCachedClient client=new MemCachedClient();
protected static Mycache memCached = new Mycache();
// 创建 memcached连接池
static{
// 指定memcached服务地址
String [] addr ={"127.0.0.1:11211"};
// 指定memcached服务器负载量
Integer [] weights = {3};
// 从连接池获取一个连接实例
SockIOPool pool = SockIOPool.getInstance();
// 设置服务器和服务器负载量
pool.setServers(addr);
pool.setWeights(weights);
// 设置一些基本的参数
//设置初始连接数5 最小连接数 5 最大连接数 250
//设置一个连接最大空闲时间6小时
pool.setInitConn(5);
pool.setMinConn(5);
pool.setMaxConn(250);
pool.setMaxIdle(1000*30*30);
// 设置主线程睡眠时间
// 每隔30秒醒来 然后
// 开始维护 连接数大小
pool.setMaintSleep(30);
// 设置tcp 相关的树形
// 关闭nagle算法
// 不设置连接超时
pool.setNagle(false);
pool.setSocketTO(30);
pool.setSocketConnectTO(0);
// 开始初始化 连接池
pool.initialize();
}
/**
* getInstance:无参的构造函数. <br/>
* @return
* @since JDK 1.6
*/
protected Mycache()
{
}
/**
* getInstance:方法返回memCached. <br/>
* @return memCached的实例
* @since JDK 1.6
*/
public static Mycache getInstance()
{
return memCached;
}
/**
* set:对Memcahed的set 命令的封装用于向缓存添加新的键值对。如果键已经
*在,则之前的值将被替换. <br/>
* @param key
* @param value
* @return
* @since JDK 1.6
*/
public boolean set(String key, Object value)
{
return client.set(key, value);
}
/**
* add:对Memcahed的add命令仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应 NOT_STORED. <br/>
* @param key
* @param value
* @param expiry 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
* @return
* @since JDK 1.6
*/
public boolean add(String key, Object value, Date expiry)
{
return client.add(key, value, expiry);
}
/**
* add:对Memcahed的add命令的封装仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应 NOT_STORED. <br/>
* @param key
* @param value
* @return
* @since JDK 1.6
*/
public boolean add(String key, Object value)
{
return client.add(key, value);
}
/**
* add:对Memcahed的add命令的封装仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应 NOT_STORED. <br/>
* @param key
* @param value
* @return
* @since JDK 1.6
*/
public boolean replace(String key, Object value)
{
return client.replace(key, value);
}
/**
* replace:对Memcahed的replace命令仅当键已经存在时,replace 命令才会替换缓存中的键。如果缓存中不存在键,那么您将从 memcached 服务器接受到一条 NOT_STORED 响应. <br/>
* @param key
* @param value
* @param expiry
* @return
* @since JDK 1.6
*/
public boolean replace(String key, Object value, Date expiry)
{
return client.replace(key, value, expiry);
}
/**
* delete:对Memcahed的delete命令的封装。delete 命令用于删除 memcached 中的任何现有值。您将使用一个键调用delete,如果该键存在于缓存中,则删除该值。. <br/>
* @param key
* @param value
* @param expiry
* @return
* @since JDK 1.6
*/
public boolean delete(String key)
{
return client.delete(key);
}
/**
* get:get对Memcahed的get命令的封装 命令用于检索与之前添加的键值对相关的值. <br/>
* @param key
* @return
* @since JDK 1.6
*/
public Object get(String key)
{
return client.get(key);
}
/**
* gets:gets 命令的功能类似于基本的 get 命令。两个命令之间的差异在于,gets 返回的信息稍微多一些:64 位的整型值非常像名称/值对的 “版本” 标识符. <br/>
* @param key
* @return
* @since JDK 1.6
*/
public Object gets(String key){
return client.gets(key);
}
/**
* flushAll:用于清理缓存中的所有名称/值对。如果您需要将缓存重置到干净的状态,则 flush_all 能提供很大的用处. <br/>
* @return
* @since JDK 1.6
*/
public boolean flushAll(){
return client.flushAll();
}
public static void main(String[] args)
{
Mycache cache = Mycache.getInstance();
cache.set("zf", 18);
cache.replace("zf", 20);
cache.set("zf1", 19);
// cache.delete("zf");
System.out.println("zf get value : " + cache.get("zf"));
System.out.println("zf get value : " + cache.get("zf1"));
/*cache.flushAll();
System.out.println(1);
System.out.println("zf get value : " + cache.get("zf"));
System.out.println("zf get value : " + cache.get("zf1"));*/
System.out.println("zf get value"+cache.gets("zf"));
}
}
分享到:
相关推荐
### Java使用Memcached简单教程 #### 一、简介 Memcached是一个高性能的分布式内存对象缓存系统,通过减轻数据库负载来加速动态Web应用,提高网站的浏览速度。它通过在内存中缓存数据和对象来减少读取数据库的次数...
以下是一个简单的Java实例,演示如何使用Spymemcached连接到Memcached服务器并执行基本操作: 1. **添加依赖** 首先,你需要在项目中添加Spymemcached的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下...
- 在提供的压缩包中,可能包含了简单的Java代码示例,如`memcached`和`memcached2`两个文件。这些文件可能演示了如何创建客户端,存储和检索数据的基本步骤。通过阅读和运行这些示例,你可以更好地理解Java与...
本文将深入讲解如何在Java环境下集成和使用Memcached。 首先,我们需要在Java项目中引入Memcached的客户端库。常见的Java Memcached客户端有spymemcached和xmemcached,这里以spymemcached为例。可以通过Maven在`...
接下来,我们来看一个简单的Java Action类,名为`MemcachedAction.java`,展示了如何在项目中使用Memcached服务: ```java package fi.ltrade.memcached; import java.io.Serializable; import java.util....
**标题:“memcached java简单实例”** 在Java开发中,我们常常会遇到缓存的需求,以提高应用程序的性能。Memcached是一款高效的分布式内存对象缓存系统,它能够将数据存储在内存中,从而减少对数据库的访问。这篇...
这是MemCached的java客户端连接使用的例子,里面包含了MemCached的增删改查操作,对字符串 list set map 对象的操作等。看就会就入门了,
"memcached for java client 例子" 指的是一个使用Java语言编写的客户端库,用于与memcached缓存系统进行交互。Memcached是一种高性能、分布式内存对象缓存系统,常用于减轻数据库负载,提升Web应用的响应速度。 **...
2. **初始化连接**:在代码中,首先需要创建一个Memcached客户端实例,通常使用Spymemcached或XMemcached等客户端库,指定memcached服务器的地址和端口。 3. **操作缓存**:现在你可以开始进行基本的缓存操作,如`...
以下是对Memcached简单配置和使用的详细说明: **第一步:引入iBOS jar包** 在使用Memcached之前,首先需要确保你的应用程序中包含了必要的库文件。将iBOS相关的jar包放入应用的lib目录下,这样你的应用程序就能...
`MemCachedManager.java`可能是库中的一个类,用于管理Memcached实例,帮助用户更方便地连接、操作和管理缓存。 这个库的核心功能包括: 1. **连接管理**:库提供了一种方式来建立和维护到Memcached服务器的连接。...
接下来,我们将深入探讨如何在Java环境中配置和使用Memcached。 首先,要连接到Memcached服务器,你需要一个Java客户端库。常见的有spymemcached和XMemcached。这里我们以spymemcached为例,因为它是社区中广泛使用...
4. 连接:使用支持Memcached的客户端库(如Python的pylibmc,Java的spymemcached)连接到服务器实例。 5. 存储与检索:将数据存储到Memcached中,使用键值对进行标识,然后根据键来检索数据。 三、Java与Memcached ...
通过以上介绍,我们可以了解到Memcached在Java应用中的重要作用和使用方式。了解并熟练掌握Memcached的使用,能够显著提升Web应用的性能,有效解决高并发场景下的数据处理问题。对于Java开发者来说,这是一项必备的...
例如,对于Python,可以使用`python-memcached`库,Java有`spymemcached`,PHP有`php-memcached`等。以下是一些基本操作: - **添加缓存**:使用`set(key, value, timeout)`方法,将键值对存入缓存,`timeout`表示...
2. 创建连接:初始化客户端实例,指定Memcached服务器的地址和端口。 3. 存储和检索数据:使用客户端提供的API进行数据的存储和读取,如`set(key, expire, value)`和`get(key)`。 4. 关闭连接:在不再需要时,关闭...
**Memcached 实例详解** ...通过以上的实例和讲解,你应该已经掌握了 Memcached 的基本使用,包括安装、客户端连接、数据缓存和清除。在实际应用中,合理利用 Memcached 可以显著提升系统的性能和响应速度。
`memcached-1.2.1-win32.zip` 提供了Memcached服务端,而`java_memcached-release_1.6.zip` 提供了Java客户端,使得开发者能够轻松地在Java环境中集成和使用Memcached。学习和掌握这些资源,将有助于构建更加快速、...
与Redis相比,Memcached更简单,专注于高速缓存,而Redis提供了更多的数据结构和持久化功能。选择哪种取决于具体应用场景和需求。 总结,Memcached作为一个高效的内存缓存系统,对于提升Web应用性能有着显著作用。...
例如,你可以使用流行的Spymemcached或Xmemcached客户端库,它们提供了简单易用的API来操作Memcached。 Spymemcached是一个流行的Java Memcached客户端,它支持异步操作,并且性能出色。使用Spymemcached时,你需要...