天天看點

Memcached基礎入門和Java操作Memcached實作增删改查

1.下載下傳Memcached

  • 32位系統 1.2.5版本:http://static.runoob.com/download/memcached-1.2.5-win32-bin.zip
  • 32位系統 1.2.6版本:http://static.runoob.com/download/memcached-1.2.6-win32-bin.zip
  • 32位系統 1.4.4版本:http://static.runoob.com/download/memcached-win32-1.4.4-14.zip
  • 64位系統 1.4.4版本:http://static.runoob.com/download/memcached-win64-1.4.4-14.zip
  • 32位系統 1.4.5版本:http://static.runoob.com/download/memcached-1.4.5-x86.zip
  • 64位系統 1.4.5版本:http://static.runoob.com/download/memcached-1.4.5-amd64.zip

2.解壓下載下傳好的檔案到指定目錄

3.安裝Memcached,以管理者的權限運作指令:

c:\memcached\memcached.exe -d install

4.安裝完成之後,啟動/停止Memcached,以管理者權限運作以下指令:

c:\memcached\memcached.exe -d start

c:\memcached\memcached.exe -d stop

5.下載下傳jar 包,下載下傳位址:spymemcached-2.10.3.jar。将下載下傳好的Jar添加到項目中去。

6.測試連接配接到Memcached

//連接配接到Memcached

    protected static MemcachedClient connect() {

        MemcachedClient mcc = null;

        try {

            // 本地連接配接 Memcached 服務

            mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));

        } catch (IOException e) {

            e.printStackTrace();

        }

        return mcc;

    }

7.Java操作Memcached實作增删改查:

    //save

    public void save() {

        try {

            MemcachedClient mcc = connect();

            // 存儲資料

            Future fo = mcc.add("memcached", 900, "Memcached");

            // 輸出值

            System.out.println("Memcached value in cache - " + mcc.get("memcached"));

            fo = mcc.add("test", 900, "test_1");

            // 輸出值

            System.out.println("test value in cache - " + mcc.get("memcached"));

            // 關閉連接配接

            mcc.shutdown();

        } catch (Exception ex) {

            System.out.println(ex.getMessage());

        }

    }

    //find

    public void find() {

        try {

            MemcachedClient mcc = connect();

            // 存儲資料

            Future fo = mcc.add("memcached", 900, "Memcached");

            // 輸出值

            System.out.println("Memcached value in cache - " + mcc.get("memcached"));

            fo = mcc.add("test", 900, "test_1");

            // 輸出值

            System.out.println("test value in cache - " + mcc.get("memcached"));

            // 關閉連接配接

            mcc.shutdown();

        } catch (Exception ex) {

            System.out.println(ex.getMessage());

        }

    }

    //update

    public void update() {

        try {

            MemcachedClient mcc = connect();

            // 存儲資料

            Future fo = mcc.add("memcached", 900, "Memcached");

            // 輸出值

            System.out.println("Memcached value in cache - " + mcc.get("memcached"));

            fo = mcc.replace("memcached", 900, "memcached_new");

            // 輸出值

            System.out.println("memcached_new value in cache - " + mcc.get("memcached"));

            // 關閉連接配接

            mcc.shutdown();

        } catch (Exception ex) {

            System.out.println(ex.getMessage());

        }

    }

    //delete

    public void del() {

        try {

            MemcachedClient mcc = connect();

            // 存儲資料

            Future fo = mcc.add("memcached_new", 900, "Memcached");

            // 輸出值

            System.out.println("Memcached value in cache - " + mcc.get("memcached_new"));

            fo = mcc.delete("memcached_new");

            // 關閉連接配接

            mcc.shutdown();

        } catch (Exception ex) {

            System.out.println(ex.getMessage());

        }

    }

8.Memcached其它存儲指令操作

//append

    public void append() {

        try {

            MemcachedClient mcc = connect();

            // 存儲資料

            Future fo = mcc.set("test_append", 900, "Append");

            // 輸出值

            System.out.println("Append value in cache - " + mcc.get("test_append"));

            fo  = mcc.append("append","append_1");

            // 輸出值

            System.out.println("append_1 value in cache - " + mcc.get("append"));

            // 關閉連接配接

            mcc.shutdown();

        } catch (Exception ex) {

            System.out.println(ex.getMessage());

        }

    }

    //prepend

    public void prepend() {

        try {

            MemcachedClient mcc = connect();

            // 存儲資料

            Future fo = mcc.set("test_prepend", 900, "Prepend");

            // 輸出值

            System.out.println("Prepend value in cache - " + mcc.get("test_prepend"));

            fo  = mcc.prepend("prepend","prepend_1");

            // 輸出值

            System.out.println("prepend_1 value in cache - " + mcc.get("prepend"));

            // 關閉連接配接

            mcc.shutdown();

        } catch (Exception ex) {

            System.out.println(ex.getMessage());

        }

    }

    //cas

    public void cas() {

        try {

            MemcachedClient mcc = connect();

            // 存儲資料

            Future fo = mcc.set("test_cas", 900, "CAS");

            // 輸出值

            System.out.println("CAS value in cache - " + mcc.get("test_cas"));

            CASValue   cas =  mcc.gets("test_cas");

            System.out.println("cas value---"+cas.getCas());

            // 關閉連接配接

            mcc.shutdown();

        } catch (Exception ex) {

            System.out.println(ex.getMessage());

        }

    }

9.Memcached查找指令:

get memcached_new

get memcached,memcached_new,test_append

gets memcached_new

gets memcached,memcached_new,test_append

delete memcached

key memcached初始值為10,使用incr之後key memcached 值變成15

set memcached  900 10

incr memcached 5

key memcached初始值為10,使用decr之後key memcached 值變成5

set memcached  900 10

decr memcached 5

10.Memcached統計指令:

stat xxx

stat items xxx

stat 1:xxx

stat xx xx

set memcached  900 10

flush_all