閱讀138 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Java: Spymemcache__客戶端連接實例_快速入門_雲數據庫 Memcache 版-阿裏雲

客戶端下載

客戶端下載地址

客戶端介紹

客戶端版本介紹

Java 代碼示例

  1. 準備 Java 開發環境。登錄已有的阿裏雲 ECS 服務器,在上麵安裝 Java JDK 和常用的 IDE(比如 Eclipse)。

    Java JDK 下載地址

    Eclipse(下載地址1下載地址2

  2. 第一個代碼示例如下,把裏麵的 Java 代碼複製到 Eclipse Project 裏麵去。

    注意:此時的代碼是編譯不成功的,因為要想調用 Memcache 緩存服務還需要一個第三方提供的 jar 包下載地址。添加這個 jar 包之後,代碼就能編譯通過了。

    OcsSample1.java 代碼示例 (需要用戶名和密碼)

    1. import java.io.IOException;
    2. import java.util.concurrent.ExecutionException;
    3. import net.spy.memcached.AddrUtil;
    4. import net.spy.memcached.ConnectionFactoryBuilder;
    5. import net.spy.memcached.ConnectionFactoryBuilder.Protocol;
    6. import net.spy.memcached.MemcachedClient;
    7. import net.spy.memcached.auth.AuthDescriptor;
    8. import net.spy.memcached.auth.PlainCallbackHandler;
    9. import net.spy.memcached.internal.OperationFuture;
    10. public class OcsSample1 {
    11. public static void main(String[] args) {
    12. final String host = "xxxxxxxx.m.yyyyyyyyyy.ocs.aliyuncs.com";//控製台上的“內網地址”
    13. final String port ="11211"; //默認端口 11211,不用改
    14. final String username = "xxxxxxxxx";//控製台上的“訪問賬號”
    15. final String password = "my_password";//郵件中提供的“密碼”
    16. MemcachedClient cache = null;
    17. try {
    18. AuthDescriptor ad = new AuthDescriptor(new String[]{"PLAIN"}, new PlainCallbackHandler(username, password));
    19. cache = new MemcachedClient(
    20. new ConnectionFactoryBuilder().setProtocol(Protocol.BINARY)
    21. .setAuthDescriptor(ad)
    22. .build(),
    23. AddrUtil.getAddresses(host + ":" + port));
    24. System.out.println("OCS Sample Code");
    25. //向OCS中存一個key為"ocs"的數據,便於後麵驗證讀取數據
    26. String key = "ocs";
    27. String value = "Open Cache Service, from www.Aliyun.com";
    28. int expireTime = 1000; // 過期時間,單位s; 從寫入時刻開始計時,超過expireTime s後,該數據過期失效,無法再讀出;
    29. OperationFuture<Boolean> future = cache.set(key, expireTime, value);
    30. future.get(); // spymemcached set()是異步的,future.get() 等待cache.set()操作結束,也可以不等待,用戶根據自己需求選擇
    31. //向OCS中存若幹個數據,隨後可以在OCS控製台監控上看到統計信息
    32. for(int i=0;i<100;i++){
    33. key="key-"+i;
    34. value="value-"+i;
    35. //執行set操作,向緩存中存數據
    36. expireTime = 1000; // 過期時間,單位s
    37. future = cache.set(key, expireTime, value);
    38. future.get(); // 確保之前(cache.set())操作已經結束
    39. }
    40. System.out.println("Set操作完成!");
    41. //執行get操作,從緩存中讀數據,讀取key為"ocs"的數據
    42. System.out.println("Get操作:"+cache.get(key));
    43. } catch (IOException e) {
    44. e.printStackTrace();
    45. } catch (InterruptedException e) {
    46. e.printStackTrace();
    47. } catch (ExecutionException e) {
    48. e.printStackTrace();
    49. }
    50. if (cache != null) {
    51. cache.shutdown();
    52. }
    53. }//eof
    54. }

    OcsSample2.java 代碼示例(不需要用戶名和密碼)

    1. import java.io.IOException;
    2. import java.util.concurrent.ExecutionException;
    3. import net.spy.memcached.AddrUtil;
    4. import net.spy.memcached.BinaryConnectionFactory;
    5. import net.spy.memcached.MemcachedClient;
    6. import net.spy.memcached.internal.OperationFuture;
    7. public class OcsSample2 {
    8. public static void main(String[] args) {
    9. final String host = "xxxxxxxx.m.yyyyyyyyyy.ocs.aliyuncs.com"; //控製台上的“內網地址”
    10. final String port = "11211"; //默認端口 11211,不用改
    11. MemcachedClient cache = null;
    12. try {
    13. cache = new MemcachedClient(new BinaryConnectionFactory(), AddrUtil.getAddresses(host + ":" + port));
    14. System.out.println("OCS Sample Code");
    15. //向OCS中存一個key為"ocs"的數據,便於後麵驗證讀取數據
    16. String key = "ocs";
    17. String value = "Open Cache Service, from www.Aliyun.com";
    18. int expireTime = 1000; // 過期時間,單位s; 從寫入時刻開始計時,超過expireTime s後,該數據過期失效,無法再讀出;
    19. OperationFuture<Boolean> future = cache.set(key, expireTime, value);
    20. future.get();
    21. //向OCS中存若幹個數據,隨後可以在OCS控製台監控上看到統計信息
    22. for (int i = 0; i < 100; i++) {
    23. key = "key-" + i;
    24. value = "value-" + i;
    25. //執行set操作,向緩存中存數據
    26. expireTime = 1000; // 過期時間,單位s
    27. future = cache.set(key, expireTime, value);
    28. future.get();
    29. }
    30. System.out.println("Set操作完成!");
    31. //執行get操作,從緩存中讀數據,讀取key為"ocs"的數據
    32. System.out.println("Get操作:" + cache.get(key));
    33. } catch (IOException e) {
    34. e.printStackTrace();
    35. } catch (InterruptedException e) {
    36. e.printStackTrace();
    37. } catch (ExecutionException e) {
    38. e.printStackTrace();
    39. }
    40. if (cache != null) {
    41. cache.shutdown();
    42. }
    43. }//eof
    44. }
  3. 在 Eclipse 裏麵打開的 OcsSample1.java,根據自己的實例信息修改幾個地方。

    每個人買到的雲數據庫 Memcache 實例的 ID 都是不重複的,其對應的阿裏雲內網地址也是獨一無二的,這些信息都在雲數據庫 Memcache 控製台上顯示出來。在同自己的雲數據庫 Memcache 實例建立連接的時候,需要根據這些信息修改 OcsSample1.java 中的對應地方,如以上代碼中紅色部分所示。

  4. 信息修改完畢,可以運行自己的程序了。運行 main 函數,會在 Eclipse 下麵的 console 窗口看到下麵這樣的結果(請忽略可能出現的紅色 INFO 調試信息)。

    1. OCS Sample Code
    2. Set操作完成!
    3. Get操作: Open Cache Service, from www.Aliyun.com

最後更新:2016-12-20 18:23:01

  上一篇:go 客戶端說明__客戶端連接實例_快速入門_雲數據庫 Memcache 版-阿裏雲
  下一篇:go PHP: memcached__客戶端連接實例_快速入門_雲數據庫 Memcache 版-阿裏雲