在Java中使用Memcached(转)
memcache的Java客户端调用,在网上还是有些少,很多都是php的。如何要想用Java调用memcache的服务,首先要有客户端的支持,我们先下载一个客户端吧。下载地址:https://github.com/gwhalin/Memcached-Java-Client。点击下图的“下载”图标。
得到java_memcached-release_2.5.3.jar文件,将其添加到项目的classpath中。
下面就利用利用memcached java client来建立一个简单的应用一个简单的应用。
代码如下(自于 java_memcached-release_2.5\doc\HOWTO.txt里面):
packagecom.mem; importcom.danga.MemCached.MemCachedClient;
importcom.danga.MemCached.SockIOPool; /**
* Created by IntelliJ IDEA.
* User: liuzhy
* Date: 2010-12-3
* Time: 16:43:36
*/
public class MemCacheInvoke {
protected static MemCachedClient mcc = new MemCachedClient(); static{ // 设置缓存服务器列表,当使用分布式缓存的时,可以指定多个缓存服务器。这里应该设置为多个不同的服务,我这里将两个服务设置为一样的,大家不要向我学习,呵呵。
String[] servers =
{
"10.15.0.215:46697",
"10.15.0.215:46697",
// "server3.mydomain.com:1624"
}; // 设置服务器权重
Integer[] weights = {3, 2}; // 创建一个Socked连接池实例
SockIOPool pool = SockIOPool.getInstance(); // 向连接池设置服务器和权重
pool.setServers(servers);
pool.setWeights(weights); // set some TCP settings
// disable nagle
// set the read timeout to 3 secs
// and don't set a connect timeout
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0); // initialize the connection pool
pool.initialize();
} public static void main(String[] args) {
mcc.set("foo", "This is a test String");
String bar = mcc.get("foo").toString();
System.out.println(">>> " + bar);
}
}
这里有一个非常重要的问题需要注意:
就是上例中10.15.0.215:46697的端口,我们在memcache中启动服务,用下面的命令启动一个memcache服务:
./memcached -d -m 10 -u liuzhy -p 112233 -l 10.15.0.215 -P /tmp/memcached.pid
其中112233是memcache监听的端口,有时候,这个端口如果被占用,会重新分配一个其他端口。程序中的调用端口46697,就是因为112233被占用。
如何看memcached.pid实际的端口呢,通过这个命令:
netstat -lp | grep memcached
如果不加-p参数,缺省的端口应该是11211。 执行main函数,得到结果如下:
>>>This is a test String
执行后,将 mcc.set("foo", "This is a test String"); 这行注释掉,因为已经放入缓存,所以执行main函数,还能看到字符串输出
>>>This is a test String
转自 http://hi.baidu.com/hivemind/item/8ff435c20709f9360831c664
在Java中使用Memcached(转)的更多相关文章
- memcached在Java中的应用以及magent的配置-每天进步一点点
memcached在Java中的应用: http://nhy520.iteye.com/blog/1775893 magent配置memcached分布式集群的应用: http://www.jians ...
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)
Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)
硬盘和内存的作用是什么 硬盘的作用毫无疑问我们大家都清楚,不就是用来存储数据文件的么?如照片.视频.各种文档或等等,肯定也有你喜欢的某位岛国老师的动作片,这个时候无论我们电脑是否关机重启它们永远在那里 ...
- Java client 访问 memcached
在测试项目中引入了memcached作为缓存层,以下是memcached的缓存配置和调用过程. linux下memcached安装过程 直接参考以前的博文linux下安装memcached过程 不再 ...
- Redis学习记录之Java中的初步使用
1.关于Redis redis下载地址:<span style="font-family: Arial, Helvetica, sans-serif;">http:// ...
- java程序使用memcached
Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. 1.linux环境下安装与启动memcache: 以编译安装的方式安装.具体参看: http://wang ...
- spring中整合memcached,以及创建memcache的put和get方法
spring中整合memcached,以及创建memcache的put和get方法: 1:在项目中导入memcache相关的jar包 2:memcache在spring.xml的配置: 代码: < ...
- java中Memcache的使用
java中Memcache的使用 一.什么是Memcached? Memcached是danga.com开发的分布式内存对象缓存系统,所谓分布式,意味着它不是本地的,而是基于网络连接完成服务.Memc ...
- (转)java中使用memcache
背景:公司项目中使用java和memcache相结合来搭建缓存,所以要了解下缓存的基础知识! 1 了解memcache 1.1 基础知识 什么是Memcache? Memcache集群环境下缓存解决方 ...
随机推荐
- 求10000以内n的阶乘
总时间限制: 5000ms 内存限制: 655360kB 描述 求10000以内n的阶乘. 输入 只有一行输入,整数n(0<=n<=10000). 输出 一行,即n!的值. 样例输入 ...
- LeetCode() Valid Anagram 有问题!!!
为什么第一个通过,第二个不行呢? class Solution { public: bool isAnagram(string s, string t) { if(s.size() != t.size ...
- hdu1074 状压DP、栈实现记录路径
题意:给了几门学科作业.它们的截止提交期限(天数).它们的需要完成的时间(天数),每项作业在截止日期后每拖延一天扣一学分,算最少扣的学分和其完成顺序. 一开始做的时候,只是听说过状态压缩这个神奇的东西 ...
- VPS 搭建 SS
推荐 VPS:http://www.vultr.com/?ref=6915101 1.连接 VPS 运行命令 ssh root@xx.xx.xx.xx -p 22 // vultr 的端口为 22 然 ...
- [转] JAVA网站高并发解决方案
http://blog.csdn.net/herrapfel/article/details/9630911
- Visual Studio 2012 离线升级包的制作
通过CMD执行“VS2012.3.exe/layout”命令,就可以把在线升级的文件保存到本地,这样一来,只要把下载出来的文件打包上传,然后分享出去,所谓的“VS2012 Update 3 离线升级包 ...
- (转) ICCV 2015:21篇最火爆研究论文
ICCV 2015:21篇最火爆研究论文 ICCV 2015: Twenty one hottest research papers “Geometry vs Recognition” ...
- 主成分分析(PCA)
主成分分析(principal component analysis)是一种常见的数据降维方法,其目的是在"信息"损失较小的前提下,将高维的数据转换到低维,从而减小计算量.PCA的 ...
- Unity3d NGUI 地图
1,制作地图 方式1: NGUI,新建一个Atlas,为M,按照一定的比例如 1:400,绘制地图. 新建一个GameObject,为A,关联UIPanel.A的transform.localScal ...
- Concurrent inserts on MyISAM and the binary log
Recently I had an interesting surprise with concurrent inserts into a MyISAM table. The inserts were ...