文档章节

java数据提交到mencached 和redis

石头哥哥
 石头哥哥
发布于 2012/10/25 15:11
字数 577
阅读 666
收藏 7

今天捣鼓了下mencached 还不错


依赖库

commons-pool-1.5.6

java_memcached-release_2.6.6

slf4j-api-1.6.1

slf4j-simple-1.6.1

mencached

第三方维护的win32版

http://splinedancer.com/memcached-win32/


package com.Mencached;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

import java.util.Date;

/**
 * Created with IntelliJ IDEA.
 * User: CHENLEI
 * Date: 12-10-25
 * Time: 下午2:15
 * To change this template use File | Settings | File Templates.
 * java数据提交到mencached 测试
 */
public class MenCached {

    private static MemCachedClient mcc = new MemCachedClient();

    // set up connection pool once at class load
    static {
        // server list and weights
        String[] servers =
                {
                        "127.0.0.1:11211",
//                        "server2.mydomain.com:1624",
//                        "server3.mydomain.com:1624"
                };

        Integer[] weights = { 3 };

        // SockIOPool
        SockIOPool pool = SockIOPool.getInstance();

        // set the servers and the weights
        pool.setServers( servers );
        pool.setWeights( weights );

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


        pool.setMaintSleep(10);//thread sleep


        pool.setNagle( false );
        pool.setSocketTO( 3000 ); //timeout read  3secs
        pool.setSocketConnectTO( 0 );

        // initialize the connection pool
        pool.initialize();
    }

    private  MenCached(){}

   //获取MenCached操作引用
    public static MenCached getInstance()
    {
        return singlton.mencached;
    }
    private static final class singlton{
        private static final MenCached mencached=new MenCached();
    }

    /**
     * 添加一个指定的值到缓存中.
     * @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);
    }

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

    /**
     *
     * @param key
     * @param value
     * @param expiry  过期
     * @return
     */
    public boolean replace(String key, Object value, Date expiry)
    {
        return mcc.replace(key, value, expiry);
    }

    /**
     * 删除一个指定的值到缓存中.
     * @param key
     * @param
     * @return
     */
    public boolean delete(String key)
    {
        return mcc.delete(key);
    }


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

    public static void main(String[] args)
    {
        MenCached cache = MenCached.getInstance();
        long t1=System.currentTimeMillis();
        for (int i=0;i<10;i++){
            cache.add(i+"",i) ;
            System.out.println("value:"+cache.get(i+""));
        }
        System.out.println(System.currentTimeMillis()-t1);
//        System.out.println("get value : " + cache.get("key"));
    }
}

对于redis ,你需要下载redis,这里我用的是window版本,配置好redis.conf后  start redis-server.exe redis.conf启动redis.

测试,你需要https://github.com/xetorthio/jedis/downloads

jedis

java客户端

使用简单,但是相关的文献较少,要想掌握,看api,或则看看源码咯,也不是很多

package com.Mencached;

import redis.clients.jedis.Jedis;

/**
 * Created with IntelliJ IDEA.
 * User: CHENLEI
 * Date: 12-10-27
 * Time: 上午11:34
 * To change this template use File | Settings | File Templates.
 * redis test
 */
public class redisDeamo {
    //在redis.conf中配置hosts prot
    private static final Jedis jedis = new Jedis("127.0.0.1",9090);
    public static redisDeamo getInstance(){
        return sigtlon.redis;
    }
    private redisDeamo(){
    }
    private static  final class sigtlon{
      private static final redisDeamo redis=new redisDeamo();
    }

    public void setJedis(java.lang.String key, java.lang.String value){
        jedis.set(key, value);
    }

    public Object getJedis(java.lang.String key){
        return  jedis.get(key);
    }


     //test
    public static void main(String[]args){
        redisDeamo.getInstance().setJedis("foo","909090");

        String value = (String) redisDeamo.getInstance().getJedis("foo");
        System.out.println("获取的值:"+ value);

    }



}

实际的应用 还得深入的去考究 

© 著作权归作者所有

共有 人打赏支持
石头哥哥
粉丝 302
博文 203
码字总数 120417
作品 2
渝中
程序员
私信 提问
加载中

评论(2)

石头哥哥
石头哥哥

引用来自“震秦”的评论

添加代码的时候可以使用add code,选中java,可以代码高亮.你这样的看的眼花.

good idea
震秦
震秦
添加代码的时候可以使用add code,选中java,可以代码高亮.你这样的看的眼花.
Java程序员从阿里拿到offer回来,这些面试题你会吗?

前不久刚从阿里面试回来,为了这场面试可以说准备了一个半月,做的准备就是刷题和看视频看书充实自己的技术,话说是真难啊,不过还算顺利拿到了offer,有很多面试题我已经记不起来了,这些是...

Ala6
11/21
45
0
阿里的面试官都喜欢问哪些技术问题?

金九银十是招聘的旺季,小编在这里也给大家整理了一套阿里面试官最喜欢问的问题或者出场率较高的面试题,助校招或者社招路上的你一臂之力! 首先我们需要明白一个事实,招聘的一个很关键的因...

Java填坑之路
08/26
0
0
Redis及Spring-Data-Redis入门学习

继上一篇Solr和Spring Data Solr学习,我们思考一个问题,使用Solr的目的是什么?肯定是为了加快服务器的相应速度。因为即使不适用Solr,通过请求数据库我们一样能完成搜索功能,但是这样会给...

TyCoding
09/25
0
0
wireshark和RawCap跟踪并解决中文乱码问题

一、问题概述 说下程序的架构。 有个后台管理系统A,在页面修改数据后,会用httpClient发http请求给系统B; 系统B做了异步机制,收到A发的请求后,将数据封装为Mq消息发给RabbitMq,然后结束...

三国梦回
08/10
0
0
十个JDBC的最佳实践

JDBC是Java为多种关系型数据库提供的统一的访问接口,以下是我长期使用JDBC总结的十个最佳实践。 JDBC最佳实践1:使用PrearedStatement 任何一个使用过JDBC的Java程序员几乎都知道这个,Pre...

王振威
2012/09/08
6.3K
12

没有更多内容

加载失败,请刷新页面

加载更多

十万个为什么之为什么大家都说dubbo

Dubbo是什么? 使用背景 dubbo为什么这么流行, 为什么大家都这么喜欢用dubbo; 通过了解分布式开发了解到, 为适应访问量暴增,业务拆分后, 子应用部署在多台服务器上,而多台服务器通过可以通过d...

尾生
23分钟前
2
0
Docker搭建代码质量检测平台-SonarQube(中文版)

Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量。通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言...

Jacktanger
30分钟前
2
0
Windows / Linux / MacOS 设置代理上网的方法汇总

本文汇总了 Windows / Linux / MacOS 设置代理上网的各种方法,总结如下: 1、设置系统代理(Windows、Linux、MacOS) 2、设置代理插件(Chrome、Chromium、Firefox、Opera、QQ等浏览器) 3、...

sunboy2050
昨天
4
0
自定义 Maven 的 repositories

有时,应用中需要一些比较新的依赖,而这些依赖并没有正式发布,还是处于milestone或者是snapshot阶段,并不能从中央仓库或者镜像站上下载到。此时,就需要 自定义Maven的<repositories>。 ...

waylau
昨天
3
0
徒手写一个es6代码库

mkdir democd demonpm initnpm install -g babelnpm install -g babel-clinpm install --save-dev babel-preset-es2015-node5 在项目目录创建两个文件夹 functional-playground ......

lilugirl
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部