设为首页 收藏本站
查看: 557|回复: 0

[经验分享] CentOS 安装 Memcache 服务器. java 做客户端.

[复制链接]

尚未签到

发表于 2016-5-12 09:31:53 | 显示全部楼层 |阅读模式
  
  1,下载安装第三方源:
  
  CentOS 6 或 RedHat 6 安装此rpm , 其他 下载 :http://pkgs.repoforge.org/rpmforge-release/
  
  
  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
  
  
DSC0000.png
  
  3,启动服务.
  
  service memcached start
  
  将服务设置 为自动启动:
  

  
chkconfig memcached on
  
  
  4,测试客户端.(需要安装 nc)
  
  yum install nc
  
  具体命令参考:[引用]
  
  http://blog.s135.com/post/384/
  
  
  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服务器.
  
  继续添加虚拟机端口.
  
  
DSC0001.png
  同时修改 iptables 配置文件.
  
  
DSC0002.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 ");
}
}

  
  
  执行结果:
  
  
  
DSC0003.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 工程下载.
  
  下载java_src
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-215899-1-1.html 上篇帖子: 配置CentOS服务器间的SSH信任登录 下篇帖子: CentOS 安装 Memcache 服务器. java 做客户端.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表