CentOS 安装 Memcache 服务器. java 做客户端.

简介:   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 rp

 

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

 


 

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服务器.

 

继续添加虚拟机端口.

 


同时修改 iptables 配置文件.

 


重启 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 ");
	}

}

 

 

执行结果:

 

 

 

 

 

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

 

 

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

 

目录
相关文章
|
9天前
|
Oracle Java 关系型数据库
Java 开发者必备:JDK 版本详解与选择策略(含安装与验证)
Oracle Java SE 支持路线图显示,JDK 8(LTS)支持至2030年,非LTS版本如9-11每6个月发布且支持有限。JDK 11(LTS)支持至2032年,而JDK 17及以上版本现在提供免费商用许可。LTS版本提供长达8年的支持,每2年发布一次。Oracle JDK与OpenJDK有多个社区和公司构建版本,如Adoptium、Amazon Corretto和Azul Zulu,它们在许可证、商业支持和更新方面有所不同。个人选择JDK时,可考虑稳定性、LTS、第三方兼容性和提供商支持。
24 0
|
16天前
|
Linux
centos 查看服务器信息 版本cpu
centos 查看服务器信息 版本cpu
12 0
|
1月前
|
Java 关系型数据库 MySQL
Flink1.18.1和CDC2.4.1 本地没问题 提交任务到服务器 报错java.lang.NoClassDefFoundError: Could not initialize class io.debezium.connector.mysql.MySqlConnectorConfig
【2月更文挑战第33天】Flink1.18.1和CDC2.4.1 本地没问题 提交任务到服务器 报错java.lang.NoClassDefFoundError: Could not initialize class io.debezium.connector.mysql.MySqlConnectorConfig
52 2
|
1月前
|
Oracle 关系型数据库 Linux
服务器Centos7 静默安装Oracle Database 12.2
服务器Centos7 静默安装Oracle Database 12.2
86 0
|
1月前
|
Java 编译器 测试技术
滚雪球学Java(04):JDK、IntelliJ IDEA的安装和环境变量配置
【2月更文挑战第11天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!!
48 1
|
2月前
|
Java
java上传、下载、预览、删除ftp服务器上的文件
java上传、下载、预览、删除ftp服务器上的文件
|
2月前
|
移动开发 编解码 网络协议
用Java的BIO和NIO、Netty来实现HTTP服务器(三) 用Netty实现
用Java的BIO和NIO、Netty来实现HTTP服务器(三) 用Netty实现
|
2月前
|
网络协议 Java Linux
用Java来实现BIO和NIO模型的HTTP服务器(二) NIO的实现
用Java来实现BIO和NIO模型的HTTP服务器(二) NIO的实现
|
2月前
|
编解码 网络协议 Java
用Java的BIO和NIO、Netty实现HTTP服务器(一) BIO与绪论
用Java的BIO和NIO、Netty实现HTTP服务器(一) BIO与绪论
|
2月前
|
Java Linux 网络安全
vscode 远程服务器 java 无法跳转
【2月更文挑战第4天】