mac memcached

介绍

在本文中,我将解释如何:

  1. 在Mac OS X上安装和配置Memcached
  2. 在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相关推荐

  1. Mac OS X上的Java Memcached

    介绍 在本文中,我将解释如何: 在Mac OS X上安装和配置Memcached 在Java应用程序中使用Memcached 我不会过多地介绍在您的应用程序中使用分布式缓存的好处,但是至少让我们提供一 ...

  2. 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 ...

  3. java 获取mac字体_Mac OS X上的Java App无法正确打印字体

    我最近发现我写的徽章打印程序在 Windows上运行良好多年没有在MAC OS X上正确打印.我使用的是Arial truetype字体.该程序似乎显示基本字体,没有适当的缩放.我正在使用intell ...

  4. MAC、OS系统上怎么安装MT4、MT5交易软件

    对于有些交易易来说,如果自己的电脑是苹果电脑,想要在MAC OS系统中操作和使用MT4/MT5软件,那么应该怎么办呢? 其实还是有办法的. 首先您可以在自己的苹果电脑中安装Wine,它是一个免费的程序 ...

  5. MAC的OS系统损坏情况下,U盘启动安装win10系统

    室友的MAC笔记本OS损坏,打不开,想装一个win10系统,扔给我试试看.原以为和一般windows系统的电脑一样,U盘做启动盘安装应该不会有问题,装起来就觉得没想象中容易. 一般在MAC上安装win ...

  6. 【转】如何在Mac上卸载Java及安装Java

    如何在 Mac 上卸载 Java? 本文适用于: 平台: Macintosh OS X Java 版本: 7.0, 8.0 使用终端卸载 Oracle Java 注:要卸载 Java,必须具有管理员权 ...

  7. java os库_java-Mac OS X上的JNotify?

    我想尝试JNotify,该插件库用于监视文件系统的更改,但无法弄清楚如何对其进行配置. JNotify的网页上说:" java.library.path应该指向jnotify附带的本机库的位 ...

  8. mac os java_适用于Mac OS X的官方Java 7 –状态

    mac os java 希望到目前为止,每个人都知道苹果公司去年加入了OpenJDK项目. 那是什么意思? 苹果将​​把用于私有Mac Java构建的代码作为GPL代码贡献给OpenJDK Oracl ...

  9. 适用于Mac OS X的官方Java 7 –状态

    希望到现在,每个人都知道苹果公司去年加入了OpenJDK项目. 这意味着什么? 苹果将​​把用于私有Mac Java构建的代码作为GPL代码贡献给OpenJDK 甲骨文将接管Java的Mac端口 随着 ...

最新文章

  1. linux下查看emmc读写次数,通过串口命令查看EMMC擦写次数的三大方法
  2. h3c_rip附加相关视频
  3. 2011年9月 成都 腾讯笔试 面试过程(亲身体验,仅供参考娱乐)(一)
  4. java出现Resource leak: 'input' is never closed 解决方法
  5. 【Python】Python迭代求解开平方算法
  6. Visual Studio调试技巧
  7. 华为云联合HarmonyOS发布智联生活行业加速器
  8. 32位有符号整数_008. 字符串转换整数 (atoi) | Leetcode题解
  9. 京东11.11晚8开启四小时累计售出商品超1.9亿件
  10. 你能理解、不能理解和不需要理解的量子计算
  11. 大量文本框非空判断,如何提高灵活性?
  12. 百度文库的几种下载方法
  13. 军用设备环境试验方法高温振动试验标准
  14. 用python暴力破解rar加密文件(经过测试)
  15. 好课堂Scratch编程09 趣学篇(五)目标!幽灵古堡
  16. 谷歌浏览器关闭阅读清单
  17. Stanford Parser使用
  18. 西门子1200PLC程序远程上下载,远程在线调试原来是使用了巨控GRM530远程模块
  19. centos使用技巧
  20. 搞线上渠道推广实操这么些年了

热门文章

  1. (十四)消息中间件MQ详解及四大MQ比较
  2. 2016蓝桥杯省赛---java---B---8(四平方和)
  3. RPC远程过程调用之Hessian 基于HTTP
  4. C++实现字符串的拼接
  5. 将模板方法模式应用到kmeans聚类算法
  6. 《线性代数及其应用》
  7. SpringBoot多数据源(主从数据源)配置
  8. jdk 版本和内部版本对应_JDK 14 Rampdown:内部版本27
  9. switch字符串jdk_应用新的JDK 11字符串方法
  10. netflix 模式创新_创新设计模式:单例模式