Spring-Redis基础使用篇

目录

目标

设计思想

重要类

使用

lettuce共享连接与独占连接特性


目标

讲述spring与redis集成的设计思想、使用、特性验证。

官方文档

设计思想

对连接进行底层抽象,对操作进行高层抽象,客户端连接与操作彻底解耦,切换而互不影响。

这种设计思路,与大家考虑扩展性方案时的思考具有相同点,即实现扩展性的共同点:抽象,面向接口编程,使用接口承载扩展。

目前spring对Jedis和Lettuce提供融合实现。

具体代码见spring-data-redis包,我认为可以使用下图简述设计思路。

 

重要类

RedisConnection 提供与redis通信的核心组件,负责与redis服务器的通信。自动将底层连接包的异常转化为SpringDAO异常,所以底层连接可随意切换,不会影响操作。

RedisConnectionFactory 用于创建RedisConnection。

 

使用

使用springboot进行集成,也就是依赖autoconfig特性,仅需要添加依赖和配置属性即可。

需要maven依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

需要的配置,仅列举pool配置。

#redis配置
spring:
  redis:
    host: xxxx
    port: 6379
    database: 0
    password: xxx
    timeout: 2000ms
    lettuce:
      pool:
        max-idle: 10
        min-idle: 1
        max-active: 200
        max-wait: 2000ms

#redis配置
spring:
  redis:
    host: xxxx
    port: 6379
    database: 0
    password: xxx
    timeout: 2000ms
    jedis:
      pool:
        max-idle: 10
        min-idle: 1
        max-active: 200
        max-wait: 2000ms

具体配置项可参考

org.springframework.boot.autoconfigure.data.redis.RedisProperties
org.springframework.data.redis.connection.RedisSentinelConfiguration
org.springframework.data.redis.connection.RedisClusterConfiguration

代码中直接引入xxxTemplate,例如

    @Resource
    RedisTemplate redisTemplate;

lettuce共享连接与独占连接特性

默认情况,Lettuce 对 所有非阻塞和非事务型操作 共享 同一个线程安全的本地连接。可配置LettucePool,为阻塞和事务操作,提供独占连接。

避免内容冗长,请见下篇随笔,验证lettuce共享和独占连接特性

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值