修改memcache服务器,CentOS 安装 Memcache 服务器. java 做客户端.

1,下载安装第三方源:

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

rpm -ivh rpmforge-release-0.5.2-2.el6.rf.i686.rpm

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

2,安装memcahce.

yum install memcached

783ff030b48c39101fcfbc398b8ff927.png

3,启动服务.

service memcached start

将服务设置 为自动启动:

chkconfigmemcachedon

4,测试客户端.(需要安装 nc)

yum install nc

具体命令参考:[引用]

1、数据存储(假设key为zhangyan,value为12345)

printf "set zhangyan 0 0 5\r\n12345\r\n" | nc 127.0.0.1 11211

STORED

2、数据取回(假设key为zhangyan)

printf "get zhangyan\r\n" | nc 127.0.0.1 11211

VALUE zhangyan 0 5

12345

END

3、数值增加1(假设key为zhangyan,并且value为正整数)

printf "incr zhangyan 1\r\n" | nc 127.0.0.1 11211

12346

4、数值减少3(假设key为zhangyan,并且value为正整数)

printf "decr zhangyan 3\r\n" | nc 127.0.0.1 11211

12343

5、数据删除(假设key为zhangyan)

printf "delete zhangyan\r\n" | nc 127.0.0.1 11211

DELETED

6、查看Memcached状态

printf "stats\r\n" | nc 127.0.0.1 11211

STAT pid 3025

STAT uptime 4120500

STAT time 1228021767

STAT version 1.2.6

STAT pointer_size 32

STAT rusage_user 433.463103

STAT rusage_system 1224.515845

STAT curr_items 1132460

STAT total_items 8980260

STAT bytes 1895325386

STAT curr_connections 252

STAT total_connections 547850

STAT connection_structures 1189

STAT cmd_get 13619685

STAT cmd_set 8980260

STAT get_hits 6851607

STAT get_misses 6768078

STAT evictions 0

STAT bytes_read 160396238246

STAT bytes_written 260080686529

STAT limit_maxbytes 2147483648

STAT threads 1

END

7、模拟top命令,查看Memcached状态:

watch "printf 'stats\r\n' | nc 127.0.0.1 11211"

或者

watch "echo stats | nc 127.0.0.1 11211"

5.使用java 客户端连接memcache服务器.

继续添加虚拟机端口.

068893e107c632cc70378cdc898f9e1b.png

同时修改 iptables 配置文件.

660302e0b931c9de627b5b0301935c62.png

重启 iptables

service iptables restart

5,java 工程 demo.

package com.test.demo;

import java.io.IOException;

import java.net.InetSocketAddress;

import net.spy.memcached.MemcachedClient;

public class MemcachedDemo {

public static void main(String[] args) throws IOException {

long t1 = System.currentTimeMillis();

MemcachedClient memcachedClient = new MemcachedClient(

new InetSocketAddress("127.0.0.1", 11211));

// 可以设置多个..new InetSocketAddress("127.0.0.1", 11211)

for (int i = 0; i < 10000; i++) {

UserInfo userInfo = new UserInfo();

userInfo.setUserName("name" + i);

userInfo.setPasswd("passwd" + i);

userInfo.setAge(i % 99);

// 更新后被替换..

memcachedClient.add("user_" + i, 3600, userInfo);

}

System.out.println("finish.");

// 删除key

memcachedClient.delete("user_0");

memcachedClient.delete("user_1");

memcachedClient.delete("user_2");

// 按照key得到数据.

for (int i = 0; i < 10000; i++) {

if (i % 1000 == 0) {

Object userInfo = memcachedClient.get("user_" + i);

System.out.println(i + "\t" + userInfo);

}

}

for (int i = 3; i < 1000; i++) {

// 删除数据

memcachedClient.delete("user_" + i);

}

// 一定用完毕要关闭.

memcachedClient.shutdown();

long t2 = System.currentTimeMillis();

System.out.println("Program has executed for "

+ (int) ((t2 - t1) / 1000) + " s " + ((t2 - t1) % 1000)

+ " ms ");

}

}

执行结果:

df0d58363d9dd7a964bbf40744227ae9.png

有的时候会报错误.是因为一次取数据太多了.超时了.

Exception in thread "main" net.spy.memcached.OperationTimeoutException: Timeout waiting for value

at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1142)

at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1157)

at com.test.demo.MemcachedDemo.main(MemcachedDemo.java:35)

Caused by: net.spy.memcached.internal.CheckedOperationTimeoutException: Timed out waiting for operation - failing node: /127.0.0.1:11211

at net.spy.memcached.internal.OperationFuture.get(OperationFuture.java:65)

at net.spy.memcached.internal.GetFuture.get(GetFuture.java:37)

at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1135)

... 2 more

是在测试的时候 循环了 10000 次造成的吧..

也可.在 hibernate 里面配置 二级缓存 为 memcache .

附件:

java 工程下载.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值