1. 程式人生 > >Java中使用memcache緩存

Java中使用memcache緩存

視頻 hash表 通過 println hash 數據 bject min 分布式

一、簡要概述:

memcache集群環境下緩存解決方案,是一個高性能的分布式的內存對象緩存系統,通過在內存庫裏維護一個統一的巨大的hash表,存儲各種數據,包括圖像、視頻、文件以及數據庫檢索結果等。
簡單的說就是講數據調用到存儲中,後從內存中讀取,從而大大提高讀取速度。memcache是這個項目的名稱,而memcached是它的服務端的主程序文件名。

二、常用方法:

1、初始化memcache

//初始化memcache
    public static void initMemcache(){
        String[] servers = {"127.0.0.1:11211"};
        SockIOPool pool = SockIOPool.getInstance();
        pool.setServers(servers);
        pool.setFailover(true);
        pool.setInitConn(10);
        pool.setMinConn(5);
        pool.setMaxConn(250);
        pool.setMaintSleep(30);
        pool.setNagle(false);
        pool.setSocketTO(3000);
        pool.setAliveCheck(true);
        pool.initialize();
    }

2、創建緩存

/**
     * 創建緩存
     * @param key   鍵
     * @param value 值
     */
    public static void createMemcache(String key, Object value){
        //創建client對象
        MemCachedClient mclent = new MemCachedClient();
        //創建緩存
        mclent.set(key, value);
    }

3、刪除指定緩存

/**
     * 刪除指定緩存
     * @param key     鍵
     */
    public static void deleteMemcache(String key){
        MemCachedClient mclent = new MemCachedClient();
        mclent.delete(key);
    }

4、獲取緩存

/**
     * 獲取緩存
     * @param key    鍵
     * @return       值
     */
    public static Object getMemcache(String key){
        MemCachedClient mclent = new MemCachedClient();
        Object value = mclent.get(key);
        return value;
    }

5、獲取多個緩存

/**
     * 獲取多個緩存對象
     * @param keys
     * @return 
     */
    public static Map<String, Object> getManyMemcache(String[] keys){
        MemCachedClient mclent = new MemCachedClient();
        Map<String, Object> m = mclent.getMulti(keys);
        return m;
    }

6、清空指定類型的緩存

/**
     * 清除指定類型的緩存
     * @param str
     * @return
     */
    public static boolean flashLMemcache(String[] str){
        MemCachedClient mclent = new MemCachedClient();
        mclent.flushAll(str);
        return true;
    }

7、清空所有緩存

/**
     *清空緩存
     * @return
     */
    public static boolean flashMemcache(){
        MemCachedClient mclent = new MemCachedClient();
        mclent.flushAll();
        return true;
    }

三、演示與測試:

/**
     * memcache,存儲調用測試
     */
    AbMemcache.initMemcache();
    AbMemcache.createMemcache("redant", "今天20181106");
    Object obj = AbMemcache.getMemcache("redant");
    System.err.println(obj);

演示結果:

/**

  • memcache,刪除指定緩存
    */
    AbMemcache.deleteMemcache("redant");
    System.err.println(AbMemcache.getMemcache("redant"));
    /**
  • 清空全部緩存
    */
    AbMemcache.flashMemcache();
    System.err.println(AbMemcache.getMemcache("redant"));

演示結果:

技術分享圖片

Java中使用memcache緩存