02. SDR 环境搭建

Spring Data Redis(简称SDR) 是spring 操作redis 的一个框架, 可以使用jedis 驱动或Lettuce 驱动, SDR 2.x 系列默认使用Lettuce 驱动. SpringBoot 整合Spring data redis 方式比较简单, 需要注意的是,redis 有三种集群: 单实例, 高可用集群, 分片集群。 SDR 对于不同的方式配置略有不同.

1. 引入依赖

  • 笔者的springboot版本号为 2.1.4.RELEASE
  • 除了引入spring-boot-starter-data-redis 之外, 还需要引入apache 的commons-pool2包, 因为redis连接配置了连接池
<!-- SDR 核心包 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

<!-- redis 连接池依赖包 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
    <version>2.4.2</version>
</dependency>

<!-- 使用SDR的json 序列化方式GenericJackson2JsonRedisSerializer 需要依赖这两个包 -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.2</version>
</dependency>

2. 集成配置

2.1 单节点配置

spring:
  redis:
    host: 127.0.0.1
    port: 6379
    database: 0
    password: 123456
    lettuce:
      pool:
        max-active: 10
        max-idle: 5
        min-idle: 5
        max-wait: 30000ms

2.2 sentinel高可用配置

需要注意的时 sentinel.master 为sentinel中配置的名称,这个名称不能错.

spring:
  redis:
    database: 0
    password: 123456
    lettuce:
      pool:
        max-active: 10
        max-idle: 5
        min-idle: 5
        max-wait: 30000ms
    sentinel:
      master: redis.localhost
      nodes:
        - 127.0.0.1:26481
        - 127.0.0.1:26482
        - 127.0.0.1:26483

2.3 cluster 集群配置

spring:
  redis:
    database: 0
    password: 123456
    lettuce:
      pool:
        max-active: 10
        max-idle: 5
        min-idle: 5
        max-wait: 30000ms
    cluster:
      nodes:
        - 127.0.0.1:7481
        - 127.0.0.1:7482
        - 127.0.0.1:7483
        - 127.0.0.1:7484
        - 127.0.0.1:7485
        - 127.0.0.1:7486
        - 127.0.0.1:7487
        - 127.0.0.1:7488
        - 127.0.0.1:7489

3. 测试用例

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestStringTmp {


    @Autowired
    private StringRedisTemplate redisTemplate;

    @Test
    public void test_save() throws InterruptedException {
        ValueOperations<String, String> ops = redisTemplate.opsForValue();
        ops.set("name","zongf");

        Thread.sleep(Integer.MAX_VALUE);

    }

}
上一篇:你不知道的iostat


下一篇:WF中的Bookmark