天天看点

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