ITPub博客

首页 > 数据库 > NoSQL > Redis笔记2:Jedis连接池

Redis笔记2:Jedis连接池

原创 NoSQL 作者:zhenghaishu 时间:2016-01-12 14:07:48 0 删除 编辑

Jedis是redis的java客户端。我们可以在java编程中使用它来编写java代码访问Redis服务。

在编写代码之前,需要从

http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22redis.clients%22%20AND%20a%3A%22jedis%22

和

http://search.maven.org/#artifactdetails%7Corg.apache.commons%7Ccommons-pool2%7C2.0%7Cjar

下载最新版本的jedis和commons-pool2的jar包,这里下载的是jedis-2.8.0.jar和commons-pool2-2.0.jar。

如果需要查看源码,需要把jedis-2.8.0-sources.jar和commons-pool2-2.0-sources.jar也一并下载下来。

 

一、Jedis单连接示例

建立一个JedisTest工程,把上面下载的四个包添加进工程,如下图所示

 

建立JedisTest.java文件,代码如下

import redis.clients.jedis.Jedis;

 

public class JedisTest {

 

  public static void main(String[] args) {

        try {

            String host = "127.0.0.1";//控制台显示访问地址

            int port = 6379;

            Jedis jedis = new Jedis(host, port);

            //鉴权信息由用户名:密码拼接而成

            jedis.auth("123456");//instance_id:password

          

            String key = "ping";

            String value = "pong";

            //select db默认为0

            jedis.select(1);

            //set一个key

            jedis.set(key, value);

            System.out.println("Set Key: " + key + ", Value: " + value);

            //get 设置进去的key

            String getvalue = jedis.get(key);

            System.out.println("Get Key: " + key + ", ReturnValue: " + getvalue);

            jedis.quit();

            jedis.close();

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}

 

运行结果:

Set Key: ping, Value: pong

Get Key: ping, ReturnValue: pong

 

二、JedisPool连接池示例

将上个例子中main函数的实现代码改为:

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.JedisPoolConfig;

import java.util.Set;

 

public class JedisTest {

   

    public static void main(String[] args) {

        JedisPoolConfig config = new JedisPoolConfig();

        //最大空闲连接数, 应用自己评估,不要超过AliCloudDB for Redis每个实例最大的连接数

        config.setMaxIdle(200);

        //最大连接数, 应用自己评估,不要超过AliCloudDB for Redis每个实例最大的连接数

        config.setMaxTotal(300);

        config.setTestOnBorrow(false);

        config.setTestOnReturn(false);

 

        String host = "127.0.0.1";

        String password = "123456";

        JedisPool pool = new JedisPool(config, host, 6379, 3000, password);

        Jedis jedis = null;

        for(int i = 0; i < 5; i++) {

            try {

                jedis = pool.getResource();

                jedis.set("foo", "bar");

                String foobar = jedis.get("foo");

                System.out.println(foobar);

                jedis.zadd("name", 0, "Zhang San");

                jedis.zadd("name", 0, "Li Si");

                Set sose = jedis.zrange("name", 0, -1);

                System.out.println(sose);

            } finally {

                if (jedis != null) {

                    jedis.close();

                }

            }

        }

        pool.close();

    }

}

 

运行结果:

bar

[Li Si, Zhang San]

bar

[Li Si, Zhang San]

bar

[Li Si, Zhang San]

bar

[Li Si, Zhang San]

bar

[Li Si, Zhang San]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29485627/viewspace-1975279/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-02-14

  • 博文量
    112
  • 访问量
    1057358