Jedis连接池
jedis是官方首选的java客户端开发包
Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。 在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 在企业中用的最多的就是Jedis,Jedis同样也是托管在github上, 地址:https://github.com/xetorthio/jedis。 下载jedis解压后得到jar包如下:java操作redis数据库API(Jedis)
jedis常用API
方法 | 解释 |
---|---|
new Jedis(host, port) | 创建jedis对象,参数host是redis服务器地址,参数port是redis服务端口 |
set(key,value) | 设置字符串类型的数据 |
get(key) | 获得字符串类型的数据 |
hset(key,field,value) | 设置哈希类型的数据 |
hget(key,field) | 获得哈希类型的数据 |
lpush(key,values) | 设置列表类型的数据 |
lpop(key) | 列表左面弹栈 |
rpop(key) | 列表右面弹栈 |
del(key) | 删除指定的key |
jedis连接池的使用
jedis连接池的基本概念
jedis连接资源的创建与销毁是很消耗程序性能,所以jedis为我们提供了jedis的池化技术,
jedisPool在创建时初始化一些连接资源存储到连接池中,使用jedis连接资源时不需要创建,
而是从连接池中获取一个资源进行redis的操作,使用完毕后,不需要销毁该jedis连接资源,
而是将该资源归还给连接池,供其他请求使用。
package com.baidu; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class jedisPool { @Test public void testJedisPool(){ //1 获得连接池配置对象,设置配置项 JedisPoolConfig config = new JedisPoolConfig(); // 1.1 最大连接数 config.setMaxTotal(30); //1.2 最大空闲连接数 config.setMaxIdle(10); //获得连接池 JedisPool jedisPool = new JedisPool(config,"localhost",6379); Jedis jedis=null; try { //3.获得核心对象 jedis = jedisPool.getResource(); //4.设置数据 jedis.set("name","xinruyi"); //5.获得数据 String name = jedis.get("name"); System.out.println(name); } catch (Exception e) { e.printStackTrace(); } finally { if(jedis!=null){ jedis.close(); } } //虚拟机关闭时,释放pool资源 if(jedisPool!=null){ jedisPool.close(); } } }
案例-编写jedis连接池工具类
/*JedisUtil*/ package com.baidu; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.util.ResourceBundle; /*jedis工具类*/ public final class JedisUtil { private JedisUtil() {} private static JedisPool jedisPool; private static int maxtotal; private static int maxwaitmillis; private static String host; private static int port; /*读取jedis.properties配置文件*/ static{ ResourceBundle rb = ResourceBundle.getBundle("jedis"); maxtotal = Integer.parseInt(rb.getString("maxtotal")); maxwaitmillis = Integer.parseInt(rb.getString("maxwaitmillis")); host = rb.getString("host"); port = Integer.parseInt(rb.getString("port")); } /*创建连接池*/ static{ JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxTotal(maxtotal); jedisPoolConfig.setMaxWaitMillis(maxwaitmillis); jedisPool = new JedisPool(jedisPoolConfig,host,port); } /*获取jedis*/ public static Jedis getJedis(){ return jedisPool.getResource(); } /*关闭Jedis*/ public static void close(Jedis jedis){ if(jedis!=null){ jedis.close(); } } }
配置文件
赞 (0)