博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用jedis获取redis连接(集群和非集群状态下)
阅读量:7068 次
发布时间:2019-06-28

本文共 1783 字,大约阅读时间需要 5 分钟。

第一:非集群状态下

非集群状态下用Jedis获取redis连接,得到Jedis对象即可,一共有两种:

1.利用Jedis构造器,仅限用于测试,在实际项目中肯定是用JedisPool。

  Jedis(String host);

  Jedis(String host , int port);

2.利用JedisPool

主要是利用Jedis jedis=jedisPool.getResource();

    JedisPool有N多个构造器,常用的构造器参数有GenericObjectPoolConfig poolConfig,String host,int port,int timeout,String password,创建GenericObjectPoolConfig对象时我们一般用其子类JedisPoolConfig (redis.clients.jedis.JedisPoolConfig),timeout是连接redis服务器的超时时间,以毫秒为单位,一般设置为0,如果不设为0,则不可设置太小,如果设成1、2,那么可能因为网络原因在1毫秒、2毫秒之内没有连上服务器而报错。见下例:

public static void main(String[] args) {    JedisPoolConfig poolConfig = new JedisPoolConfig();    // 最大连接数    poolConfig.setMaxTotal(2);    // 最大空闲数    poolConfig.setMaxIdle(2);    // 最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常:    // Could not get a resource from the pool    poolConfig.setMaxWaitMillis(1000);    JedisPool pool = new JedisPool(poolConfig, "192.168.83.128", 6379, 0, "123");    Jedis jedis = null;    try {        for (int i = 0; i < 5; i++) {            jedis = pool.getResource();            jedis.set("foo" + i, "bar" + i);            System.out.println("第" + (i + 1) + "个连接, 得到的值为" + jedis.get("foo" + i));            // 用完一定要释放连接            jedis.close();        }    } finally {        pool.close();    }}

如上,创建出一个JedisPool对象,然后调用其getResource()方法获取redis连接即可,之后就可以调用Jedis API操作redis了。jedis连接用完要释放即close,如果不close,则产生的连接会越来越多,当达到了最大连接数,再想获得连接,就会等待,当超过了最大等待时间后就会报异常。

如果用了spring框架,则可以用spring管理redis连接池,在spring配置文件中配置如下:

这样就可以在要用到jedis连接的类中注入jedisPool对象,从而通过jedisPool.getResource()得到一个redis连接。

第二:集群状态下

集群状态下用Jedis获取redis连接,是得到JedisCluster对象,之后对redis进行操作都是用此对象的方法进行的:

如果用了spring框架的话,则非常简单

转载于:https://www.cnblogs.com/koushr/p/5873398.html

你可能感兴趣的文章
redis缓存java项目中,配置和使用
查看>>
Linux中Mysql主从配置
查看>>
mongodb将副本集转换为切片集群
查看>>
JimStoneAjax使用ANT或者Maven等自动部署工具编译时需要添加debug参数
查看>>
【自用】 Python 信息熵 信息增益
查看>>
Java中BigDecimal的应用
查看>>
DataGrid的itemreader中使用outerDocument
查看>>
理解 JavaScript 的函数
查看>>
面试题之总结-大数运算
查看>>
我们为什么要使用NOSQL非关系数据库?
查看>>
【转载】QPS、PV 、RT(响应时间)之间的关系
查看>>
js日期控件
查看>>
PHPdom操作查找xml标签文本
查看>>
图解Javascript上下文与作用域
查看>>
GIT撤销总结
查看>>
mysql char(len) binary 和 varchar(len) binary的用意
查看>>
KeyValueTextInputFormat
查看>>
git多个公钥
查看>>
java基础
查看>>
人工智能的三大局限性
查看>>