java连接memcached_Java 连接 Memcached 服务

通过 telnet 命令并指定主机ip和端口来连接 Memcached 服务。

telnet HOST PORT

telnet 127.0.0.111211

添加 Memcached jar 包

net.spy

spymemcached

2.9.1

以下程序假定 Memcached 服务的主机为 127.0.0.1,端口为 11211。如果是远程访问,记得在防火墙的入站规则中添加端口。

public class MemcachedJava {

public static void main(String[] args) {

try {

// 连接本地的 Memcached 服务

MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));

System.out.println("Connection to server sucessful.");

Future fo = mcc.set("memcached", 10, "memcached");// 添加数据

System.out.println("set status:" + fo.get());// 输出执行set方法后的状态

System.out.println("get - " + mcc.get("memcached"));// 使用get方法获取数据

fo = mcc.add("memcached", 10, "add");// 添加

System.out.println("add status:" + fo.get());// 输出执行add方法后的状态

System.out.println("add - " + mcc.get("memcached"));// 获取键对应的值

fo = mcc.replace("memcached", 10, "memcached replace");

System.out.println("replace status:" + fo.get());// 输出执行replace方法后的状态

System.out.println("replace - " + mcc.get("memcached"));// 获取键对应的值

fo = mcc.append("memcached", " append");// 对存在的key进行数据添加操作

System.out.println("append status:" + fo.get());// 输出执行 append方法后的状态

System.out.println("append - " + mcc.get("memcached"));// 获取键对应的值

fo = mcc.prepend("memcached", "prepend ");// 对存在的key进行数据添加操作

System.out.println("prepend status:" + fo.get());// 输出执行prepend方法后的状态

System.out.println("prepend - " + mcc.get("memcached"));// 获取键对应的值

CASValue casValue = mcc.gets("memcached");// 通过 gets 方法获取 CAS token(令牌)

System.out.println("CAS token - " + casValue);// 输出 CAS token(令牌) 值

CASResponse casresp = mcc.cas("memcached", casValue.getCas(), " CAS");// 尝试使用cas方法来更新数据

System.out.println("CAS Response - " + casresp);// 输出 CAS 响应信息

System.out.println("CAS - " + mcc.get("memcached"));// 输出值

fo = mcc.delete("memcached");// 对存在的key进行数据添加操作

System.out.println("delete status:" + fo.get());// 输出执行 delete方法后的状态

System.out.println("delete - " + mcc.get("memcached"));// 获取键对应的值

Future number = mcc.set("number", 10, "1000");// 添加数字值

System.out.println("set status:" + number.get());// 输出执行 set 方法后的状态

System.out.println("incr - " + mcc.incr("number", 100));// 自增并输出

System.out.println("decr - " + mcc.decr("number", 101));// 自减并输出

// 关闭连接

mcc.shutdown();

}

catch (Exception ex) {

System.out.println(ex.getMessage());

}

}

}

set 命令用于将 value(数据值) 存储在指定的 key(键) 中。如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用。

add 命令用于将 value(数据值) 存储在指定的 key(键) 中。如果 add 的 key 已经存在,则不会更新数据(过期的 key 会更新),之前的值将仍然保持相同。

replace 命令用于替换已存在的 key(键) 的 value(数据值)。如果 key 不存在,则替换失败。

append 命令用于向已存在 key(键) 的 value(数据值) 后面追加数据 。

prepend 命令用于向已存在 key(键) 的 value(数据值) 前面追加数据 。

CAS(Check-And-Set 或 Compare-And-Swap) 命令用于执行一个"检查并设置"的操作它仅在当前客户端最后一次取值后,该key 对应的值没有被其他客户端修改的情况下, 才能够将值写入。

get 命令获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空。

gets 命令获取带有 CAS 令牌存 的 value(数据值) ,如果 key 不存在,则返回空。

delete 命令用于删除已存在的 key(键)。

incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操作。incr 与 decr 命令操作的数据必须是十进制的32位无符号整数。如果 key 不存在返回 NOT_FOUND,如果键的值不为数字,则返回 CLIENT_ERROR,其他错误返回 ERROR。

stats 命令用于返回统计信息例如 PID(进程号)、版本号、连接数等。

stats items 命令用于显示各个 slab 中 item 的数目和存储时长(最后一次访问距离现在的秒数)。

stats slabs 命令用于显示各个slab的信息,包括chunk的大小、数目、使用情况等。

stats sizes 命令用于显示所有item的大小和个数。该信息返回两列,第一列是 item 的大小,第二列是 item 的个数。

flush_all 命令用于清理缓存中的所有 key=>value(键=>值) 对。该命令提供了一个可选参数 time,用于在制定的时间后执行清理缓存操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值