日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Mac OS X上的Java Memcached

發布時間:2023/12/3 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mac OS X上的Java 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.安裝對memcached必需的libevent

    $ 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位無符號整數,與數據一起進行memcached存儲
    • 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 OS X上的Java Memcached的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。