树叶云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

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

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