Java 连接 Memcached 服务

Windows 下安装 Memcached http://www.runoob.com/memcached/window-install-memcached.html

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

telnet HOST PORT
telnet 127.0.0.1 11211

添加 Memcached jar 包

<dependency>
    <groupId>net.spy</groupId>
    <artifactId>spymemcached</artifactId>
    <version>2.9.1</version>
</dependency>

  以下程序假定 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,用于在制定的时间后执行清理缓存操作。

 

转自http://www.runoob.com/memcached/java-memcached.html

原文地址:https://www.cnblogs.com/RealWorld/p/9214292.html

时间: 2024-10-25 05:52:24

Java 连接 Memcached 服务的相关文章

PHP 连接 Memcached 服务

PHP Memcache 扩展包下载地址:http://pecl.php.net/package/memcache,你可以下载最新稳定包(stable) wget http://pecl.php.net/get/memcache-2.2.7.tgz tar -zxvf memcache-2.2.7.tgzcd memcache-2.2.7/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-co

Java连接MQTT服务-wss方式

特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/ 说明:前面介绍的tcp.ws方式适合Java程序在局域网内使用,不涉及到安全问题.但由于Android手机APP需要通过websocket方式来连接,就必须考虑安全性问题了,这时候就采用了wss+CA证书方式进行认证,而且在数据传输中也是加密的.大致与ws方式相同,只不过是加了证书

memcached(2)常用语法与java连接服务

memcached常用语法及java使用方式 Author:SimpleWu Memcached 存储命令 Memcached set 命令用于将 value(数据值) 存储在指定的 key(键) 中. 如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用. set key flags exptime bytes [noreply] value Memcached add 命令用于将 value(数据值) 存储在指定的 key(键) 中. 如果 add 的

java 连接Redis及demo

java连接linux Redis遇到的问题 昨天在Linux搭建了Redis服务,今天使用java连接测试了一下.要想使用java连接redis服务,就离不开jedis-2.6.1.jar.使用jedis连接redis十分方便.下面我们测试一下是否连接上redis服务: package com.coinvs.redis.util;import redis.clients.jedis.Jedis;//import redis.clients.jedis.Jedis;public class Ra

PHP连接Memcached安装及数据库操作

memcached介绍 Memcached是一套开源的高性能分布式内存对象缓存系统,它将所有的数据都存储在内存中,因为在内存中会统一维护一张巨大的Hash表,所以支持任意存储类型的数据.很多网站通过使用 Memcached提高网站的访问速度,尤其是对于大型的需要频繁访问数据的网站. Memcached是典型的C/S架构,因此需要安装 Memcached服务端与 MemcachedAPI客户端. Memcached服务端是用C语言编写的,而 Memcached API客户端可以用任何语言来编写,如

企业级Memcached服务应用实践。

企业级Memcached服务应用实践 Memcached服务 一, Memcached介绍 1.1 Memcached与常见同类软件对比 (1)Memcached是什么? Memcached是一个开源的,支持高性能,高并发的分布式内存缓存系统,由C语言编写,总共2000多行代码.从软件名称上看,前3个字符"Mem"就是内存的意思,而接下来的后面5个字符"cache"就是缓存的意思,最后一个字符d,是daemon的意思,代表是服务器端守护进程模式服务. Memcach

memcached演练(2) 访问memcached服务

通过上节<memcached演练(1) 搭建memcached服务>,已经成功在linux虚拟机上安装了memcached服务,并设置了自启动. STAT version 1.4.29 Mem:          1891 主要内容 使用telnet命令行工具,操作memcached服务 使用java spymemcached工具访问memcached服务 监控插入不同数据量的数据,响应时间 监控memcached主机繁忙&清闲对比情况 调整memcached的内存指标,插入相同的数据

高级运维(五):构建memcached服务、LNMP+memcached、使用Tomcat设置Session、Tomcat实现session共享

一.构建memcached服务 目标: 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的添.删.改.查操作: 1> 安装memcached软件,并启动服务d 2> 使用telnet测试memcached服务 3> 对memcached进行增.删.改.查等操作 方案: 使用1台RHEL7虚拟机作为memcached服务器(192.168.4.5). 在RHEL7系统光盘中包含有memcached,因此需要提前配置yum源,即可直接使用yum安装,客户端测

构建memcached服务,Tomcat实现session共享

构建memcached服务 1.1 问题 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的添.删.改.查操作: 安装memcached软件,并启动服务 使用telnet测试memcached服务 对memcached进行增.删.改.查等操作 1.2 方案 使用1台RHEL7虚拟机作为memcached服务器(192.168.4.5). 在RHEL7系统光盘中包含有memcached,因此需要提前配置yum源,即可直接使用yum安装,客户端测试时需要提前安装te