精华内容
下载资源
问答
  • 创建redis连接池对象
    千次阅读
    2020-11-21 18:07:42

    1.什么是Redis连接池?

    Redis 和MySQL一样都有连接池,使用连接池可以***避免频繁的创建和销毁链接对象而消耗资源***;

    2.如何使用Redis连接池?

    创建连接池配置对象;
    创建连接池对象;
    创建连接对象;

    @Test   //Redis 连接池
    public void redis4(){
        JedisPoolConfig poolConfig = new JedisPoolConfig();//创建连接池配置对象;
        poolConfig.setMaxTotal(10);//最大活跃数
        poolConfig.setMaxIdle(2);//最大空闲数
        poolConfig.setMinIdle(5);//最小空闲数
        poolConfig.setMaxWaitMillis(3000);//当连接池空了之后多久没有获取到Jedis对象就超时;
    
        //创建连接池对象,引入连接池配置对象
        JedisPool jedisPool = new JedisPool(poolConfig,"10.11.57.76",6379);
        //获取连接 ,最后还是要来创建连接对象jedis;
        Jedis jedis = jedisPool.getResource();
        String age = jedis.get("age");
        System.out.print(age);
    }
    

    。。。。。。。。。。。。。

    嘻哈的简写笔记

    。。。。。。。。。。。。。

    更多相关内容
  • redis连接池对象-工具

    2020-11-18 21:12:07
    说明:获取redis连接池对象-工具类 依赖: <!-- redis客户端 jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>...

    说明:获取redis连接池对象-工具类

    依赖:

    <!-- redis客户端 jedis -->
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>3.3.0</version>
    </dependency>
    

    配置文件:redis.properties

    #ip:本地
    redis.host=127.0.0.1
    #端口
    redis.port=6379
    #redis密码
    redis.password=123456
    #超时时间
    redis.timeout=1000
    

    RedisUtils工具类

    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    import java.io.IOException;
    import java.util.Properties;
    
    /**
     * 获取redis连接池对象 工具类
     */
    public enum RedisUtils {
        INSTANCE;
        static JedisPool jedisPool = null;
    
        static {
            //1 创建连接池配置对象
            JedisPoolConfig config = new JedisPoolConfig();
            //2 进行配置-四个配置
            config.setMaxIdle(1);//最小连接数
            config.setMaxTotal(11);//最大连接数
            config.setMaxWaitMillis(10 * 1000L);//最长等待时间
            config.setTestOnBorrow(true);//测试连接时是否畅通
            //3 通过配置对象创建连接池对象
            Properties properties = null;
            try {
                properties = new Properties();
                properties.load(RedisUtils.class.getClassLoader().getResourceAsStream("redis.properties"));
            } catch (IOException e) {
                e.printStackTrace();
            }
            //连接地址ip
            String host = properties.getProperty("redis.host");
            //端口
            String port = properties.getProperty("redis.port");
            //密码
            String password = properties.getProperty("redis.password");
            //超时连接时间(毫秒)
            String timeout = properties.getProperty("redis.timeout");
    //        System.out.println(host);
    //        System.out.println(port);
    //        System.out.println(password);
    //        System.out.println(timeout);
            jedisPool = new JedisPool(config, host, Integer.valueOf(port),Integer.valueOf(timeout), password);
        }
    
        //获取连接
        public Jedis getSource() {
            return jedisPool.getResource();
        }
    
        //关闭资源
        public void closeSource(Jedis jedis) {
            if (jedis != null) {
                jedis.close();
            }	
        }
        
        /**
         * 删除字符值
         *
         * @param key
         * @param
         */
        public void del(String key) {
            Jedis jedis = getSource();
            jedis.del(key);
            closeSource(jedis);
        }
        
        /**
         * 设置字符值
         *
         * @param key
         * @param value
         */
        public void set(String key, String value) {
            Jedis jedis = getSource();
            jedis.set(key, value);
            closeSource(jedis);
        }
    
        /**
         * 设置
         * @param key
         * @param value
         */
        public void set(byte[] key, byte[] value) {
            Jedis jedis = getSource();
            jedis.set(key, value);
            closeSource(jedis);
        }
    
        /**
         *
         * @param key
         * @return
         */
        public byte[]  get(byte[] key) {
            Jedis jedis = getSource();
            try {
                return jedis.get(key);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                closeSource(jedis);
            }
            return null;
        }
    
        /**
         * 获取字符值
         *
         * @param key
         */
        public String get(String key) {
            Jedis jedis = getSource();
            try {
                return jedis.get(key);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                closeSource(jedis);
            }	
            return null;
        }
    
        /**
         * 设置字符值。有倒计时(秒)
         * @param key
         * @param value
         * @param time
         */
        public void set(String key, String value, Integer time) {
            Jedis jedis = getSource();
            jedis.setex(key,time,value);
            closeSource(jedis);
        }
    }
    
    展开全文
  • Redis连接池配置详解

    2022-08-24 00:53:53
    以上就可实现Redis连接池的配置,配值参数要和生产环境相符,防止占用多余链接造成资源浪费。

    连接池配置

    文章目录

    一、Redis连接池

    与JDBC中在与数据库进行连接时耗时,从而需要引入连接池一样。Java在与Redis进行连接也是需要时间的。所以在Java于Redis进行连接中也需要引入连接池(以空间换时间)。

    示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

    二、jar包准备

    在这里插入图片描述

    三、编写代码配置,创建连接池,并调用处连接

    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    
    public class Test
    {
        public static void main(String[] args) {
            //连接池配置
            JedisPoolConfig config =new JedisPoolConfig();
            config.setMaxTotal(1000);//最大提供的连接数
            config.setMaxIdle(100);//最大空闲连接数(即初始化提供了100有效的连接数)
            config.setMinIdle(10);//最小保证的提供的(空闲)连接数
            //创建Jedis连接池
            JedisPool pool = new JedisPool(config,"127.0.0.1",6379);
            //从连接池中得到可用的jedis对象
            Jedis jedis = pool.getResource();
            //通过jedis操作Redis数据库
            jedis.set("t2","DaoXiaoMian");
            //关闭jedis对象,将这个对象放回Jedis连接池中
            jedis.close();
        }
    }
    

    总结

    以上就可实现Redis连接池的配置,配值参数要和生产环境相符,防止占用多余链接造成资源浪费。

    展开全文
  • Redis连接池

    千次阅读 2022-05-03 15:05:47
    Jedis本身是线程不安全的,并且频繁的创建和销毁连接会有性能损耗,因此我们推荐大家使用jedis连接池代替jedis的直连方式 SpringDataRedis SpringData是Spring中数据操作的模块,包含对各种数据库的集成,其中对...

    Jedis连接池

    Jedis本身是线程不安全的,并且频繁的创建和销毁连接会有性能损耗,因此我们推荐大家使用jedis连接池代替jedis的直连方式

    在这里插入图片描述

    SpringDataRedis

    SpringData是Spring中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模块就叫做SpringDataRedis

    • 提供了对不同Redis客户端的整合(Lettuce和Jedis)
    • 提供了RedisTemplate统一API来操作Redis
    • 支持Redis的发布订阅模型
    • 支持Redis哨兵和Redis集群
    • 支持基于Lettuce的响应式编程
    • 支持基于JDK、JSON、字符串、Spring对象的数据序列化及反序列化
    • 支持基于Redis的JDKCollection实现
    <--基于Springboot引入这两个依赖:-->
    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    
    <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
                <version>2.11.1</version>
    </dependency>
    
    spring:
      redis:
        host: 127.0.0.1
        port: 6379
        lettuce:
          pool:
            max-active: 8
            max-idle: 8
            min-idle: 0
            max-wait: 100ms
    
    @SpringBootTest
    class RedisDemoApplicationTests {
        @Autowired
        private RedisTemplate redisTemplate;
        @Test
        void contextLoads() {
            redisTemplate.opsForValue().set("name","谷歌");
            Object name = redisTemplate.opsForValue().get("name");
            System.out.println("name="+name);
        }
    }
    
    展开全文
  • SpringBoot2.0默认采用Lettuce客户端来连接Redis服务默认是不使用连接池的,只有配置redis.lettuce.pool下的属性的时候才可以使用到redis连接池版本说明2.5.4redis6.2.52.8.1采用Lettuce使用连接池,要依赖commons-...
  • 连接池的创建 package com.jt.redis; import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import redis.clients.jedis.Jedis;... * Jedis连接池对象 * volatile 关键字作用 * 1)
  • 20210604 Redis连接池常用配置

    千次阅读 2021-06-04 17:20:50
    Redis Client封装的大致步骤 1)创建配置对象(通过连接池配置对象创建连接池,根据具体的场景配置连接池参数 JedisPoolConfig), 2)创建连接池对象(单例模式管理JedisPool,连接池中会有很多jedis实例,Redis...
  • Redis连接池 一,Redis常见JAVA客户端 jedis 概况:Jedis是redis的Java客户端,其API提供了比较全面的Redis命令的支持。Jedis中的方法调用是比较底层的暴露的Redis的API,也即Jedis中的Java方法基本和Redis的API保持...
  • 对象创建后可被重复使⽤ 像常⻅的线程池、内存池、连接池对象池都具有以上的共同特点。 什么是数据库连接池 定义:数据库连接池(Connection pooling)是程序启动时建⽴⾜够的数据库连接,并将这些连接组成⼀...
  • c++ redis连接池的实现

    2021-04-21 20:26:10
    学习teamtalk服务端源码,把redis连接池的实现记录下,用到了hiredis三方库和头文件。 整个redis缓存池是三个类实现的,redis-manager,redis-pool,redis-conn。 main函数获取redis-manager对象实例 main() { //...
  • spring-data-redis连接池

    千次阅读 2022-04-21 15:16:45
    连接池使用原因 在某些业务场景中使用了redis作为分布式缓存,...ps:spring-boot-starter-redis默认是不使用连接池连接池 SpringBoot 1.x 默认采用 Jedis 作为 redis 客户端连接池 SpringBoot 2.x spring-data-redis
  • java redis连接池

    千次阅读 2020-07-08 15:42:03
    jedis连接池:JedisPool 创建JedisPool连接池对象 调用方法 getResource()方法获取Jedis连接 //创建一个配置对象 JedisPoolConfig config = new JedisPoolConfig(); //最大活动对象数 config.setMaxTotal(50); //...
  • 首先说一下连接池的作用:连接池是将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对数据库进行访问。这样省略了创建连接和销毁连接的过程。这样性能上得到了提高。连接池就是为了避免重复多...
  • 我自己编写了一个redis的客户端,在测并发的时候发现获取到的redis连接无法归还到连接池这是单元测试类public class RedisTest {private static final ExecutorService executorService = Executors....
  • Golang Redis连接池封装

    2022-08-17 16:46:05
    goland 使用redis连接池
  • 通常情况下,我们进行 redis 操作时,会创建一个连接,并基于这个连接进行操作。操作完成后,释放该连接。但是当并发较高时,频繁的创建和释放...原理连接池的使用1rds = redis.StrictRedis(connection_pool=redis....
  • Redis连接池C/C++设计

    千次阅读 2020-12-04 18:31:24
    Redis的C/C++编程,可以借助Hiredis。我们可以借助Hiredis提供的接口 ,实现对redis的读写操作。 Hiredis是一个Redis的C客户端库函数,基本实现了Redis的协议的最小集。 二、hiredis的使用 1、hiredis安装 安装步骤...
  • 实现一个redis连接池

    2018-12-25 11:32:00
    #*****************jedis连接参数设置*********************#redis服务器ipredis.ip=169.254.130.122#redis服务器端口号redis.port=6379#redis访问密码redis.passWord=test123#与服务器建立连接的超时时间redis.time...
  • 007_Redis_Jedis连接池

    2022-04-20 22:11:19
    007_redis_Jedis连接池 1、Jedis本身是线程不安全的,并且频繁的创建以及销毁连接会对性能造成损耗。如何解决? 我们可以使用Jedis连接池代替Jedis直接连接的方式 2、创建一个Jedis连接池工具类 package ...
  • Redis连接池的配置与使用

    千次阅读 2020-06-09 18:08:39
    Redis连接池 jedis连接资源的创建与销毁是很消耗程序性能,所以jedis为我们提供了jedis的池化技术,jedisPool在创建时初始化一些连接资源存储到连接池中,使用jedis连接资源时不需要创建,而是从连接池中获取一个...
  • Redis连接池技术

    千次阅读 2020-10-18 17:55:51
    1.为何用连接池。 数据库一次性访问人数有限,每次访问都会创建一个连接对象,影响效率 2.java代码 package cn.itsource.jedis; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients....
  • 写这篇文章的初衷源于前几天公司的Redis连接池溢出事件,后来是借助SpringBean的生命周期特征解决了连接池溢出问题。基础稍微好点的人应该知道,spring管理的bean,可以自定义初始化方法init,和bean销毁方法destroy...
  • php Redis连接池

    2021-04-26 21:15:58
    redis连接池 减少redis的重复连接,降低内存消耗!通常情况下, 当我们需要做redis操作时, 会创建一个连接, 并基于这个连接进行redis操作, 操作完成后, 释放连接,一般情况下, 这是没问题的, 但当并发量比较高的时候, ...
  • 关于Redis使用连接池介绍

    千次阅读 2020-06-13 11:00:41
    Jedis连接池 ...一次性创建多个jedis对象,在一个连接池对象中管理. 1.2连接池的一些属性 初始化连接数量:创建连接池时,默认一开始连接对象个数 最小空闲数量:连接池中的连接对象空闲的最小个数,小于最小
  • Redis连接池Lettuce Jedis 区别

    千次阅读 2020-12-12 09:54:50
    Lettuce 和 Jedis 的定位...Jedis在实现上是直接连接的redis server,如果在多线程环境下是非线程安全的,这个时候只有使用连接池,为每个Jedis实例增加物理连接 Lettuce Lettuce的连接是基于Netty的,连接实例(State
  • command里, 我们可以看到在执行redis操作时, 在finally部分, 会执行一下 pool.release(connection) 连接池对象调用release方法, 将连接从_in_use_connections 放回 _available_connections, 这样后续的连接获取就能...
  • 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,211
精华内容 13,284
热门标签
关键字:

创建redis连接池对象