树叶云Memcached教程:Java 连接 Memcached 服务

Java 连接 Memcached 服务

使用 Java 程序连接 Memcached,需要在你的 classpath 中添加 Memcached jar 包。

本站 jar 包下载地址:spymemcached-2.10.3.jar。

Google Code jar 包下载地址:spymemcached-2.10.3.jar(需要科学上网)。

以下程序假定 Memcached 服务的主机为 127.0.0.1,端口为 11211。

连接实例

Java 连接 Memcached

MemcachedJava.java 文件:

import

net
.
spy
.
memcached
.
MemcachedClient
;
import

java
.
net
.*;
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 successful.

)
;
//
关闭连接


mcc
.
shutdown
(
)
;
}
catch
(
Exception

ex
)
{

System
.
out
.
println
(

ex
.
getMessage
(
)

)
;
}

}

}

该程序中我们使用 InetSocketAddress 连接 IP 为 127.0.0.1 端口 为 11211 的 memcached 服务。

执行以上代码,如果连接成功会输出以下信息:

Connection to server successful.

set 操作实例

以下使用 java.util.concurrent.Future 来存储数据

MemcachedJava.java 文件:

import

java
.
net
.
InetSocketAddress
;
import

java
.
util
.
concurrent
.
Future
;
import

net
.
spy
.
memcached
.
MemcachedClient
;
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 successful.

)
;
//
存储数据


Future

fo
=
mcc
.
set
(

runoob

,
900
,

Free Education

)
;
//
查看存储状态


System
.
out
.
println
(

set status:

+
fo
.
get
(
)
)
;
//
输出值


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
关闭连接


mcc
.
shutdown
(
)
;
}
catch
(
Exception

ex
)
{

System
.
out
.
println
(

ex
.
getMessage
(
)

)
;
}

}

}

执行程序,输出结果为:

Connection to server successful.
set status:true
runoob value in cache - Free Education

add 操作实例

MemcachedJava.java 文件:

import

java
.
net
.
InetSocketAddress
;
import

java
.
util
.
concurrent
.
Future
;
import

net
.
spy
.
memcached
.
MemcachedClient
;
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 successful.

)
;
//
添加数据


Future

fo
=
mcc
.
set
(

runoob

,
900
,

Free Education

)
;
//
打印状态


System
.
out
.
println
(

set status:

+
fo
.
get
(
)
)
;
//
输出


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
添加


fo
=
mcc
.
add
(

runoob

,
900
,

memcached

)
;
//
打印状态


System
.
out
.
println
(

add status:

+
fo
.
get
(
)
)
;
//
添加新key


fo
=
mcc
.
add
(

runoob

,
900
,

All Free Compilers

)
;
//
打印状态


System
.
out
.
println
(

add status:

+
fo
.
get
(
)
)
;
//
输出


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
关闭连接


mcc
.
shutdown
(
)
;
}
catch
(
Exception

ex
)
{

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

}

}

replace 操作实例

MemcachedJava.java 文件:

import

java
.
net
.
InetSocketAddress
;
import

java
.
util
.
concurrent
.
Future
;
import

net
.
spy
.
memcached
.
MemcachedClient
;
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 successful.

)
;
//
添加第一个 key=》value 对


Future

fo
=
mcc
.
set
(

runoob

,
900
,

Free Education

)
;
//
输出执行 add 方法后的状态


System
.
out
.
println
(

add status:

+
fo
.
get
(
)
)
;
//
获取键对应的值


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
添加新的 key


fo
=
mcc
.
replace
(

runoob

,
900
,

Largest Tutorials’ Library

)
;
//
输出执行 set 方法后的状态


System
.
out
.
println
(

replace status:

+
fo
.
get
(
)
)
;
//
获取键对应的值


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
关闭连接


mcc
.
shutdown
(
)
;
}
catch
(
Exception

ex
)
{

System
.
out
.
println
(

ex
.
getMessage
(
)

)
;
}

}

}

append 操作实例

MemcachedJava.java 文件:

import

java
.
net
.
InetSocketAddress
;
import

java
.
util
.
concurrent
.
Future
;
import

net
.
spy
.
memcached
.
MemcachedClient
;
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 successful.

)
;
//
添加数据


Future

fo
=
mcc
.
set
(

runoob

,
900
,

Free Education

)
;
//
输出执行 set 方法后的状态


System
.
out
.
println
(

set status:

+
fo
.
get
(
)
)
;
//
获取键对应的值


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
对存在的key进行数据添加操作


fo
=
mcc
.
append
(

runoob

,
900
,

for All

)
;
//
输出执行 set 方法后的状态


System
.
out
.
println
(

append status:

+
fo
.
get
(
)
)
;
//
获取键对应的值


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
关闭连接


mcc
.
shutdown
(
)
;
}
catch
(
Exception

ex
)

{

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

}

prepend 操作实例

MemcachedJava.java 文件:

import

java
.
net
.
InetSocketAddress
;
import

java
.
util
.
concurrent
.
Future
;
import

net
.
spy
.
memcached
.
MemcachedClient
;
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 successful.

)
;
//
添加数据


Future

fo
=
mcc
.
set
(

runoob

,
900
,

Education for All

)
;
//
输出执行 set 方法后的状态


System
.
out
.
println
(

set status:

+
fo
.
get
(
)
)
;
//
获取键对应的值


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
对存在的key进行数据添加操作


fo
=
mcc
.
prepend
(

runoob

,
900
,

Free

)
;
//
输出执行 set 方法后的状态


System
.
out
.
println
(

prepend status:

+
fo
.
get
(
)
)
;
//
获取键对应的值


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
关闭连接


mcc
.
shutdown
(
)
;
}
catch
(
Exception

ex
)

{

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

}

}

CAS 操作实例

MemcachedJava.java 文件:

import

java
.
net
.
InetSocketAddress
;
import

java
.
util
.
concurrent
.
Future
;
import

net
.
spy
.
memcached
.
CASValue
;
import

net
.
spy
.
memcached
.
CASResponse
;
import

net
.
spy
.
memcached
.
MemcachedClient
;
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 successful.

)
;
//
添加数据


Future

fo
=
mcc
.
set
(

runoob

,
900
,

Free Education

)
;
//
输出执行 set 方法后的状态


System
.
out
.
println
(

set status:

+
fo
.
get
(
)
)
;
//
使用 get 方法获取数据


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
通过 gets 方法获取 CAS token(令牌)


CASValue

casValue
=
mcc
.
gets
(

runoob

)
;
//
输出 CAS token(令牌) 值


System
.
out
.
println
(

CAS token –

+
casValue
)
;
//
尝试使用cas方法来更新数据


CASResponse

casresp
=
mcc
.
cas
(

runoob

,
casValue
.
getCas
(
)
,
900
,

Largest Tutorials-Library

)
;
//
输出 CAS 响应信息


System
.
out
.
println
(

CAS Response –

+
casresp
)
;
//
输出值


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
关闭连接


mcc
.
shutdown
(
)
;
}
catch
(
Exception

ex
)

{

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

}

}

get 操作实例

MemcachedJava.java 文件:

import

java
.
net
.
InetSocketAddress
;
import

java
.
util
.
concurrent
.
Future
;
import

net
.
spy
.
memcached
.
MemcachedClient
;
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 successful.

)
;
//
添加数据


Future

fo
=
mcc
.
set
(

runoob

,
900
,

Free Education

)
;
//
输出执行 set 方法后的状态


System
.
out
.
println
(

set status:

+
fo
.
get
(
)
)
;
//
使用 get 方法获取数据


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
关闭连接


mcc
.
shutdown
(
)
;
}
catch
(
Exception

ex
)

{

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

}

}

gets 操作实例、CAS

MemcachedJava.java 文件:

import

java
.
net
.
InetSocketAddress
;
import

java
.
util
.
concurrent
.
Future
;
import

net
.
spy
.
memcached
.
CASValue
;
import

net
.
spy
.
memcached
.
CASResponse
;
import

net
.
spy
.
memcached
.
MemcachedClient
;
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 successful.

)
;
//
添加数据


Future

fo
=
mcc
.
set
(

runoob

,
900
,

Free Education

)
;
//
输出执行 set 方法后的状态


System
.
out
.
println
(

set status:

+
fo
.
get
(
)
)
;
//
从缓存中获取键为 runoob 的值


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
通过 gets 方法获取 CAS token(令牌)


CASValue

casValue
=
mcc
.
gets
(

runoob

)
;
//
输出 CAS token(令牌) 值


System
.
out
.
println
(

CAS value in cache –

+
casValue
)
;
//
关闭连接


mcc
.
shutdown
(
)
;
}
catch
(
Exception

ex
)

{

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

}

}

delete 操作实例

MemcachedJava.java 文件:

import

java
.
net
.
InetSocketAddress
;
import

java
.
util
.
concurrent
.
Future
;
import

net
.
spy
.
memcached
.
MemcachedClient
;
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 successful.

)
;
//
添加数据


Future

fo
=
mcc
.
set
(

runoob

,
900
,

World’s largest online tutorials library

)
;
//
输出执行 set 方法后的状态


System
.
out
.
println
(

set status:

+
fo
.
get
(
)
)
;
//
获取键对应的值


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
对存在的key进行数据添加操作


fo
=
mcc
.
delete
(

runoob

)
;
//
输出执行 delete 方法后的状态


System
.
out
.
println
(

delete status:

+
fo
.
get
(
)
)
;
//
获取键对应的值


System
.
out
.
println
(

runoob value in cache –

+
mcc
.
get
(

runoob

)
)
;
//
关闭连接


mcc
.
shutdown
(
)
;
}
catch
(
Exception

ex
)

{

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

}

}

Incr/Decr 操作实例

MemcachedJava.java 文件:

import

java
.
net
.
InetSocketAddress
;
import

java
.
util
.
concurrent
.
Future
;
import

net
.
spy
.
memcached
.
MemcachedClient
;
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 successful.

)
;
//
添加数字值


Future

fo
=
mcc
.
set
(

number

,
900
,

1000

)
;
//
输出执行 set 方法后的状态


System
.
out
.
println
(

set status:

+
fo
.
get
(
)
)
;
//
获取键对应的值


System
.
out
.
println
(

value in cache –

+
mcc
.
get
(

number

)
)
;
//
自增并输出


System
.
out
.
println
(

value in cache after increment –

+
mcc
.
incr
(

number

,
111
)
)
;
//
自减并输出


System
.
out
.
println
(

value in cache after decrement –

+
mcc
.
decr
(

number

,
112
)
)
;
//
关闭连接


mcc
.
shutdown
(
)
;
}
catch
(
Exception

ex
)

{

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

}

}

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/231820.html<

(0)
运维的头像运维
上一篇2025-04-19 21:21
下一篇 2025-04-19 21:22

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注