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

 

目录
相关文章
|
5天前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
56 14
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
24天前
|
开发框架 .NET C#
在 ASP.NET Core 中创建 gRPC 客户端和服务器
本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
35 5
在 ASP.NET Core 中创建 gRPC 客户端和服务器
|
2月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
155 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
173 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
1月前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
45 4
|
2月前
|
网络协议 Unix Linux
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
|
2月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
68 1
|
2月前
|
安全 区块链 数据库
|
2月前
|
存储 网络协议 Linux
AWS实操-EC2-创建购买linux(centos)EC2服务器
AWS实操-EC2-创建购买linux(centos)EC2服务器
|
2月前
|
弹性计算 关系型数据库 MySQL
CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站
CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站