mac memcached_Mac OS X上的Java Memcached
mac memcached
在本文中,我将解释如何:
- 在Mac OS X上安装和配置Memcached
- 在Java应用程序中使用Memcached
我不会过多地介绍在您的应用程序中使用分布式缓存的好处,但至少让我们提供一些在企业门户(在我的情况下为eXo平台)中运行的应用程序的使用案例– 令人惊讶的是不是吗 我将在另一篇文章中展示。
在企业门户的上下文中,我们有很多使用缓存(无论是否分布式)的原因,让我们看一下其中的一些原因:
- 门户网站用于在单个页面中聚合数据。 这些数据可能来自不同的来源:Web服务,数据库,ERP等,而实时访问数据可能会非常昂贵。 因此,尽可能地缓存调用结果将非常有趣。
- 如果使用门户来聚合来自许多来源的许多数据,则有时需要跳入另一个应用程序以继续某些操作。 分布式共享缓存可用于管理在不同进程(JVM甚至技术)中运行的不同应用程序之间的某些上下文
这是两个示例,对于基于门户的应用程序,共享缓存可能很有趣,我们可以找到许多其他原因。
请注意,Portlet API(JSR-286)已经包含用于缓存HTML片段的缓存机制,并且eXo Platform还基于JBoss Cache提供了低级 缓存 。
安装与配置
从源安装Memcached
您可以在Memcached Wiki上找到有关Memcached安装的一些信息。 以下步骤是我在环境中使用的步骤。
据我所知,Memached不能作为Mac OS X的软件包使用。我仍然在Snow Leopard(10.6.8)上,并且已经安装了XCode和所有开发工具。 我使用了wincent.com上的文章“在Mac OS X 10.6 Snow Leopard上安装memcached 1.4.1”。 为简单起见,我重复了内容并更新为最新版本。
1.创建一个工作目录:
$ mkdir memcachedbuild
$ cd memcachebuild
2安装libevent对memcached是必需的
$ curl -O http://www.monkey.org/~provos/libevent-1.4.14-stable.tar.gz
$ tar xzvf libevent-1.4.14-stable.tar.gz
$ cd libevent-1.4.14-stable
$ ./configure
$ make
$ make verify
$ sudo make install
3.安装memcached
返回您的安装目录( memcachedbuild )
$ curl -O http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz
$ tar xzvf memcached-1.4.10.tar.gz
$ cd memcached-1.4.10
$ ./configure
$ make
$ make test
$ sudo make install
现在,您可以使用/ usr / local / bin / memcached中可用的memcached
这样可以避免更改为/ usr / bin中的预安装memcached,如果要替换它而不是自己安装,只需运行带有以下参数的configure命令:./configure –prefix = / usr
启动和测试Memcached
使用以下命令行启动memcached服务器:
$ /usr/local/bin/memcached -d -p 11211
此命令在TCP端口11211上作为守护程序(-d参数)启动memcached服务器(这是默认值)。 您可以使用man memcached找到有关memcached命令的更多信息。
可以使用telnet连接来连接和测试服务器。 连接后,您可以在缓存中设置并获取对象,请看以下段落。
$ telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to tgrall-server.
Escape character is '^]'.
set KEY 0 600 16
This is my value
STORED
get KEY
VALUE KEY 0 16
This is my value
END
set命令允许您使用以下语法在缓存中添加新值:
set <key> <flags> <expiration_time> <number_of_bytes> [noreply]<value>
- key:用于将数据存储在缓存中的键
- flags:与数据一起存储的32位无符号整数
- expiration_time:以秒为单位的到期时间,如果您输入0,则表示没有延迟
- number_if_bytes:数据块中的字节数
- noreply:告诉服务器不返回任何值的选项
- value:要存储并关联到键的值。
这是位于源目录/memcachedbuild/memcached-1.4.10/doc/protocol.txt中的文档的简短视图。
get命令允许您访问与键关联的值。
您可以通过在telnet会话中调用stats命令来检查正在运行的memcahed的版本。
您的内存缓存服务器已启动并正在运行,现在您可以开始在应用程序中使用它。
具有Memcached的简单Java应用程序
从Java应用程序使用memcached的最简单方法是使用客户端库。 您可以找到许多客户端库 。 在此示例中,我使用的是由Couchbase的人员开发的spymemcached 。
1.将SpyMemcached添加到您的Maven项目
将存储库添加到您的pom.xml(或您的setting.xml)中
<repository><id>spy</id><name>Spy Repository</name><layout>default</layout><url>http://files.couchbase.com/maven2/</url>
</repository>
然后对您的pom.xml的依赖
<dependency><groupid>spy</groupid><artifactid>spymemcached</artifactid><version>2.7.3</version>
</dependency>
2.在您的应用程序中使用SpyMemcache客户端
以下代码是一个简单的Java类,允许您输入键和值并将其设置在缓存中。
package com.grallandco.blog;import java.io.BufferedReader;
import java.io.IOException;
import java.io.Console;
import java.io.InputStreamReader;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.spy.memcached.AddrUtil;
import net.spy.memcached.MemcachedClient;public class Test {public static void main(String[] args) {try {System.out.print("Enter the new key : ");BufferedReader reader = new BufferedReader( new InputStreamReader(System.in));String key = null;key = reader.readLine();System.out.print("Enter the new value : ");String value = null;value = reader.readLine();MemcachedClient cache = new MemcachedClient(AddrUtil.getAddresses("127.0.0.1:11211"));// read the object from memorySystem.out.println("Get Object before set :"+ cache.get(key) );// set a new object cache.set(key, 0, value );System.out.println("Get Object after set :"+ cache.get(key) );} catch (IOException ex) {Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);System.exit(0);}System.exit(0);}
}
因此,在执行应用程序时,您将看到类似以下内容:
Enter the new key : CITY
Enter the new value : Paris, France
2011-11-16 15:22:09.928 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2011-11-16 15:22:09.932 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@5b40c281
Get Object before set :null
Get Object after set :Paris, France
您也可以从Telnet会话访问对象:
get CITY
VALUE CITY 0 13
Paris, France
END
您可以在应用程序中使用任何Java类,唯一要做的就是使该类可序列化。
这是有关memcached和Java的第一篇文章,目前我正在研究一个集成Web服务调用,Portlet和memcached的小示例。
参考: 在我们的JCG合作伙伴 Tugdual Grall的Tug's Blog博客上,在Mac OS X上安装Memcached并在Java中使用它 。
翻译自: https://www.javacodegeeks.com/2012/05/java-memcached-on-mac-os-x.html
mac memcached
mac memcached_Mac OS X上的Java Memcached相关推荐
- Mac OS X上的Java Memcached
介绍 在本文中,我将解释如何: 在Mac OS X上安装和配置Memcached 在Java应用程序中使用Memcached 我不会过多地介绍在您的应用程序中使用分布式缓存的好处,但是至少让我们提供一 ...
- Mac OS X上的Java安装位置在哪里?
本文翻译自:Where is Java Installed on Mac OS X? I just downloaded Java 7u17 on Mac OS 10.7.5 from here an ...
- java 获取mac字体_Mac OS X上的Java App无法正确打印字体
我最近发现我写的徽章打印程序在 Windows上运行良好多年没有在MAC OS X上正确打印.我使用的是Arial truetype字体.该程序似乎显示基本字体,没有适当的缩放.我正在使用intell ...
- MAC、OS系统上怎么安装MT4、MT5交易软件
对于有些交易易来说,如果自己的电脑是苹果电脑,想要在MAC OS系统中操作和使用MT4/MT5软件,那么应该怎么办呢? 其实还是有办法的. 首先您可以在自己的苹果电脑中安装Wine,它是一个免费的程序 ...
- MAC的OS系统损坏情况下,U盘启动安装win10系统
室友的MAC笔记本OS损坏,打不开,想装一个win10系统,扔给我试试看.原以为和一般windows系统的电脑一样,U盘做启动盘安装应该不会有问题,装起来就觉得没想象中容易. 一般在MAC上安装win ...
- 【转】如何在Mac上卸载Java及安装Java
如何在 Mac 上卸载 Java? 本文适用于: 平台: Macintosh OS X Java 版本: 7.0, 8.0 使用终端卸载 Oracle Java 注:要卸载 Java,必须具有管理员权 ...
- java os库_java-Mac OS X上的JNotify?
我想尝试JNotify,该插件库用于监视文件系统的更改,但无法弄清楚如何对其进行配置. JNotify的网页上说:" java.library.path应该指向jnotify附带的本机库的位 ...
- mac os java_适用于Mac OS X的官方Java 7 –状态
mac os java 希望到目前为止,每个人都知道苹果公司去年加入了OpenJDK项目. 那是什么意思? 苹果将把用于私有Mac Java构建的代码作为GPL代码贡献给OpenJDK Oracl ...
- 适用于Mac OS X的官方Java 7 –状态
希望到现在,每个人都知道苹果公司去年加入了OpenJDK项目. 这意味着什么? 苹果将把用于私有Mac Java构建的代码作为GPL代码贡献给OpenJDK 甲骨文将接管Java的Mac端口 随着 ...
最新文章
- linux下查看emmc读写次数,通过串口命令查看EMMC擦写次数的三大方法
- h3c_rip附加相关视频
- 2011年9月 成都 腾讯笔试 面试过程(亲身体验,仅供参考娱乐)(一)
- java出现Resource leak: 'input' is never closed 解决方法
- 【Python】Python迭代求解开平方算法
- Visual Studio调试技巧
- 华为云联合HarmonyOS发布智联生活行业加速器
- 32位有符号整数_008. 字符串转换整数 (atoi) | Leetcode题解
- 京东11.11晚8开启四小时累计售出商品超1.9亿件
- 你能理解、不能理解和不需要理解的量子计算
- 大量文本框非空判断,如何提高灵活性?
- 百度文库的几种下载方法
- 军用设备环境试验方法高温振动试验标准
- 用python暴力破解rar加密文件(经过测试)
- 好课堂Scratch编程09 趣学篇(五)目标!幽灵古堡
- 谷歌浏览器关闭阅读清单
- Stanford Parser使用
- 西门子1200PLC程序远程上下载,远程在线调试原来是使用了巨控GRM530远程模块
- centos使用技巧
- 搞线上渠道推广实操这么些年了