memcached 的容易命令和Java 使用 memcached 的简单例子
来源:互联网 发布:vb.net 多线程带参数 编辑:程序博客网 时间:2024/06/04 17:53
简单的基本命令
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"));
}
}
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"));
}
}
- memcached 的容易命令和Java 使用 memcached 的简单例子
- memcached 的简单命令和Java 使用 memcached 的简单例子
- Memcached的简单使用
- memcached简单的使用教程
- memcached简单的使用教程
- memcached简单的使用教程
- memcached简单的使用教程
- Memcached的简单使用实例
- memcached java的简单调用
- memcached几个容易被忽略但非常有用的命令
- memcached的安装和使用
- Memcached的安装和使用
- Memcached的安装和使用
- Memcached的特点和使用
- memcached基础知识和简单命令
- Centos7下关于memcached的安装和简单使用
- Centos7下关于memcached的安装和简单使用
- Memcached的stats命令
- 求最小生成树,普里姆(Prim)算法
- C++设计模式-----建造者模式\生成器模式
- 序列化和反序列化
- SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"问题解决
- 给TextView加边框
- memcached 的容易命令和Java 使用 memcached 的简单例子
- poj 3467
- 合并两个排序好的链表/链表去重/链式快排
- 项目总结——深入浅出socket网络编程
- 解决Failed to load class "org.slf4j.impl.StaticLoggerBinder"
- Servlet解决中文乱码问题
- Failed to load class "org.slf4j.impl.StaticLoggerBinder".问题解决
- 如何生成可执行的jar包文件
- Java程序如何生成Jar、exe及安装文件