【Redis】连接池的使用

【是什么?】

不知大家是否还记得ODBC连接池,比如C3P0,它的作用就是在数据库和应用程序之间加了一层,这样提高了对数据库操作的性能。
Redis是一个数据库,所以Redis连接池和ODBC的连接池的本质是一样的。
没有连接池之前:
在这里插入图片描述
加入连接池之后:
在这里插入图片描述

【为什么?】

如果没有连接池,每一次的存取都需要新建一个连接,使用完后再断开,如果是频繁访问的场景,那也太不划算了。有了连接池,就相当于有了一个“大池子”,池子里的连接都是通着的。你如果想连接,自己去池子里找,自助连接。
这就类似于:你要啥,售货员会给你拿啥的小卖部和自助购物的超市的区别。

【怎么用?】

第一步:新建一个class类,用来进行连接池的配置。

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * Created by silivar on 2018/11/3.
 * 连接池
 */
public class RedisUtil {
    private RedisUtil() {
    }

    private static String ip = "localhost";
    private static int port = 6379;
    //向redis要连接池的超时时间
    private static int timeout = 10000;
    //进入redis的密码
    //private static String auth = "root";
    private static JedisPool pool = null;

    static {
        JedisPoolConfig config = new JedisPoolConfig();
        //最大连接数,默认是1万
        config.setMaxTotal(1024);
        //最大空闲实例数
        config.setMaxIdle(200);
        //等连接池给连接的最大时间,毫秒,设成-1表示永远不超时
        config.setMaxWaitMillis(10000);
        //borrow一个实例的时候,是否提前进行validate操作
        config.setTestOnBorrow(true);

        pool = new JedisPool(config, ip, port, timeout);
    }

    //得到redis连接
    public synchronized static Jedis getJedis() {
        if (pool != null) {
            return pool.getResource();
        } else {
            return null;
        }
    }

    //关闭redis连接
    public static void close(final Jedis redis) {
        if (redis != null) {
            redis.close();
        }
    }
}

第二步:新建一个测试类,用来测试连接池是否能用。
在这里插入图片描述
红色框里的为有连接池时,连接redis的方法。
被注释掉的绿色框里的为如果没有连接池,要怎么连接redis。
第三步:运行main方法,看到最后结果。
在这里插入图片描述

【小结】

参考博客:https://blog.csdn.net/weixin_39040059/article/details/79054509

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
以下是创建Spring Boot项目使用德鲁伊连接连接Oracle并使用MyBatis-Plus操作数据库以及创建Redis连接使用StringRedisTemplate操作Redis的步骤: 1. 创建Spring Boot项目 使用IDE(如IntelliJ IDEA)创建一个Spring Boot项目。 2. 添加依赖 在项目的pom.xml文件中添加以下依赖: ``` <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.6</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 3. 配置德鲁伊连接 在application.properties文件中添加以下配置: ``` # 数据库连接配置 spring.datasource.url=jdbc:oracle:thin:@localhost:1521:ORCL spring.datasource.username=username spring.datasource.password=password spring.datasource.driver-class-name=oracle.jdbc.OracleDriver # 德鲁伊连接配置 spring.datasource.druid.initial-size=5 spring.datasource.druid.min-idle=5 spring.datasource.druid.max-active=20 spring.datasource.druid.test-on-borrow=true spring.datasource.druid.test-while-idle=true spring.datasource.druid.time-between-eviction-runs-millis=60000 spring.datasource.druid.min-evictable-idle-time-millis=300000 spring.datasource.druid.pool-prepared-statements=true spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20 spring.datasource.druid.filters=wall,stat,log4j ``` 4. 配置MyBatis-Plus 在MyBatis-Plus的配置类中添加以下配置: ``` @Configuration public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(paginationInterceptor()); interceptor.addInnerInterceptor(optimisticLockerInterceptor()); return interceptor; } } ``` 5. 创建实体类和Mapper 创建一个实体类和对应的Mapper接口并继承Mybatis-Plus提供的BaseMapper接口,例如: ``` @Data public class User { private Long id; private String name; private Integer age; private String email; } public interface UserMapper extends BaseMapper<User> { } ``` 6. 使用StringRedisTemplate操作RedisRedis的配置类中添加以下配置: ``` @Configuration public class RedisConfig { @Bean public LettuceConnectionFactory redisConnectionFactory() { RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(); config.setHostName("localhost"); config.setPort(6379); return new LettuceConnectionFactory(config); } @Bean public RedisTemplate<String, Object> redisTemplate() { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(redisConnectionFactory()); template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(new JdkSerializationRedisSerializer()); return template; } @Bean public StringRedisTemplate stringRedisTemplate() { StringRedisTemplate template = new StringRedisTemplate(); template.setConnectionFactory(redisConnectionFactory()); return template; } } ``` 在需要使用Redis的地方注入StringRedisTemplate并使用它操作Redis,例如: ``` @Service public class UserService { @Autowired private UserMapper userMapper; @Autowired private StringRedisTemplate stringRedisTemplate; public User getUserById(Long id) { User user = userMapper.selectById(id); stringRedisTemplate.opsForValue().set("user:" + id, user); return user; } } ``` 以上就是创建一个Spring Boot项目使用德鲁伊连接连接Oracle并使用MyBatis-Plus操作数据库以及创建Redis连接使用StringRedisTemplate操作Redis的全部步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡夫卡的熊kfk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值