memcached 安装 测试

服务端:

 memcached官网不提供windows下的安装包,第三方安装包请网上自行寻找。

安装步骤:

1,cmd进入到memcached文件,执行以下命令:

memcached.exe -d install

2,运行-->services.msc,查找Memcached Server服务,并启动。或执行以下命令进行启动

net start "Memcached Server"

3,检测是否启动成功,执行以下命令(端口11211为默认端口,前没有冒号)

telnet 127.0.0.1 11211

 

客户端:

memcached客户端现存在有三种api:(版本存在更新情况,api后面结论只作基础参考)

①memcached client for java (较早推出,应用广泛,运行比较稳定。)
②spymemcached  (支持异步,单线程)
③xmemcached  (有效率高(特别在高并发下)和资源耗费相对较少的优点)

开发案例选择xmemcached  

开发需要jar包:

log4j-1.2.17.jar
slf4j-api-1.7.13.jar
slf4j-log4j12-1.7.9.jar
xmemcached-2.0.0.jar

CacheUtil:

package com.a;

import java.io.IOException;  
import java.util.concurrent.TimeoutException;  
  
import net.rubyeye.xmemcached.CASOperation;  
import net.rubyeye.xmemcached.MemcachedClient;  
import net.rubyeye.xmemcached.MemcachedClientBuilder;  
import net.rubyeye.xmemcached.XMemcachedClientBuilder;  
import net.rubyeye.xmemcached.exception.MemcachedException;  
import net.rubyeye.xmemcached.utils.AddrUtil;  
  
public class CacheUtil {  
  
    private MemcachedClientBuilder builder = null;  
    private MemcachedClient client = null;  
  
    public CacheUtil(String address, int[] weight) {  
        builder = new XMemcachedClientBuilder(AddrUtil.getAddresses(address), weight);  
        builder.setConnectionPoolSize(5);  
        try {  
            client = builder.build();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  
  
    public void set(String key, int exp, Object value) {  
        try {  
            if (!client.set(key, exp, value)) {  
                System.err.println("set error, key is " + key + " value is " + value);  
            }  
        } catch (TimeoutException e) {  
            e.printStackTrace();  
        } catch (InterruptedException e) {  
            e.printStackTrace();  
        } catch (MemcachedException e) {  
            e.printStackTrace();  
        }  
    }  
    
    public Object get(String key) {  
        try {  
            return client.get(key);  
        } catch (TimeoutException e) {  
            e.printStackTrace();  
        } catch (InterruptedException e) {  
            e.printStackTrace();  
        } catch (MemcachedException e) {  
            e.printStackTrace();  
        }  
        return null;  
    }
  
    public void delete(String key) {  
        try {  
            client.delete(key);  
        } catch (TimeoutException e) {  
            e.printStackTrace();  
        } catch (InterruptedException e) {  
            e.printStackTrace();  
        } catch (MemcachedException e) {  
            e.printStackTrace();  
        }  
    }  
  
    public void update(String key, final Object value) {  
        try {  
            client.cas(key, 10, new CASOperation<Object>() {  
                public int getMaxTries() {  
                    return 1;  
                }  
  
                public Object getNewValue(long currentCAS, Object currentValue) {  
                    return value;  
                }  
            });  
        } catch (TimeoutException e) {  
            e.printStackTrace();  
        } catch (InterruptedException e) {  
            e.printStackTrace();  
        } catch (MemcachedException e) {  
            e.printStackTrace();  
        }  
    }  
  
    public void addServer(String server, int port, int weight) {  
        try {  
            client.addServer(server, port, weight);  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  
      
    
} 

Test:

public static void test() {  
        String address = "localhost:11211";  
        CacheUtil cache = new CacheUtils(address, new int[] {1});  
        cache.set("testName", 10, "testValue");  
        System.out.println(cache.get("testName"));  
        cache.update("testName", "testUpdateValue");  
        System.out.println(cache.get("testName"));  
        cache.delete("testName");  
        System.out.println(cache.get("testName"));  
}  

 

转载于:https://my.oschina.net/WWWW23223/blog/829915

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值