【学习】java、memcached、windows的配置及使用

前言


看了前面几篇文章,大约对memcache有所了解,然后就可以试着在windows下面玩一玩。请注意,生产环境可不能用windows的这个阉割版,需要换成linux,到时再说。


一、windows下面运行memcache

资源如下:

http://download.csdn.net/detail/cdnight/6897479



下载windows下面1.2.6平稳版的memcache,然后编写部分脚本进行运行,


脚本如下:

memcached.exe  start


一般而言,memcache服务占用的默认端口是11211,在没有运行之前,查看11211端口是否被占用了:

netstat -aon|findstr "11211"



没有任何程序占用。


点击脚本,运行:



然后查看是不是占用了端口:




ok,memcache在windows下面完成简单配置。


二、下载java版本的memcache客户端及使用

我已经将java的memcache客户端打包了,可以到这个地址下载:

http://download.csdn.net/detail/cdnight/6897533



下面是关于如何使用这个客户端来添加缓存,修改缓存的程序示例:

(源自网上示例,但是某些地方改了一下免得新版本的客户端出错了)


package EWeb.Base.Tools;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import EWeb.Base.Config.AppConfig;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

/**
 * 警告:这个类是memcache的客户端,用于帮助存取缓存内容,
 * 要使用请先配置好memcache服务器,并且运行该服务器,
 * 正如要读写数据库时候需要安装数据库并运行数据库服务。
 * */
public class MemCachedManager {
    // 创建全局的唯一实例
    protected static MemCachedClient mcc = new MemCachedClient();

    protected static MemCachedManager memCached = new MemCachedManager();

    // 设置与缓存服务器的连接池
    static {
        // 服务器列表和其权重
        /**
         *这里是根据配置文件读取memcache服务器的ip地址,不够不用这么麻烦,调试状态可以直接设为:127.0.0.1:11211
         */
        String _memcacheServerIP=AppConfig.getMemCachedServerIP();

        String[] servers = {_memcacheServerIP};
        Integer[] weights = { 3 };

        // 获取socke连接池的实例对象
        SockIOPool pool = SockIOPool.getInstance();

        // 设置服务器信息
        pool.setServers( servers );
        pool.setWeights( weights );

        // 设置初始连接数、最小和最大连接数以及最大处理时间
        pool.setInitConn( 5 );
        pool.setMinConn( 5 );
        pool.setMaxConn( 250 );
        pool.setMaxIdle( 1000 * 60 * 60 * 6 );

        // 设置主线程的睡眠时间
        pool.setMaintSleep( 30 );

        // 设置TCP的参数,连接超时等
        pool.setNagle( false );
        pool.setSocketTO( 3000 );
        pool.setSocketConnectTO( 0 );

        // 初始化连接池
        pool.initialize();

        // 压缩设置,超过指定大小(单位为K)的数据都会被压缩

        //mcc.setCompressEnable( true );
       // mcc.setCompressThreshold( 64 * 1024 );
    }

    /**
     * 保护型构造方法,不允许实例化!
     *
     */
    protected MemCachedManager()
    {

    }

    /**
     * 获取唯一实例.
     * @return
     */
    public static MemCachedManager getInstance()
    {
        return memCached;
    }

    /**
     * 添加一个指定的值到缓存中.
     * @param key
     * @param value
     * @return
     */
    public boolean add(String key, Object value)
    {
        return mcc.add(key, value);
    }

    public boolean add(String key, Object value, Date expiry)
    {
        return mcc.add(key, value, expiry);
    }

    public boolean replace(String key, Object value)
    {
        return mcc.replace(key, value);
    }

    public boolean replace(String key, Object value, Date expiry)
    {
        return mcc.replace(key, value, expiry);
    }

    /**
     * 根据指定的关键字获取对象.
     * @param key
     * @return
     */
    public Object get(String key)
    {
        return mcc.get(key);
    }

    public static void main(String[] args)
    {
        MemCachedManager cache = MemCachedManager.getInstance();
        long startDate=System.currentTimeMillis();
        try{
            cache.add("testkey","您好吗?");
            String str=cache.get("testkey").toString();
            System.out.println(str);
            System.out.println(cache.get("testkey2"));
        }
        catch (Exception ed){
            ed.printStackTrace();
        }
    }
}



运行以后出现这个结果:



ok,windows下面的java+memcache调试环境已经整合完成。


后记

我上传了相关资源到文章都写完了还没有通过审核。。嗯,因为是春节放假吗。。。大家可以到我的资源下面找一找,因为你们看到这文章的时候春节应该已经结束了,审核也应该通过了。


补充

资源已经上传上去了,下面是两个地址:


http://download.csdn.net/detail/cdnight/6897479

http://download.csdn.net/detail/cdnight/6897533


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值