zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    }
    

      

    配置文件



  • 相关阅读:
    QT中的qmake详解
    Qt setStyleSheet 添加背景色/背景图片(取消背景色,读取本地文件作为背景色)
    目标HttpController在ASP.NET Web API中是如何被激活的:目标HttpController的选择
    分页写法小结
    SharePoint 2013 搜索高级配置(Search Scope)
    Scut游戏服务器免费开源框架-3
    物理数据模型(PDM)->概念数据模型 (CDM)->面向对象模型 (OOM):适用于已经设计好数据库表结构了。
    一种不错的扩展方式
    ORM框架
    代码最简化
  • 原文地址:https://www.cnblogs.com/xinruyi/p/9391140.html
Copyright © 2011-2022 走看看