Spring Boot 学习笔记(十一) 整合 Redis

274 阅读3分钟

Spring Boot 学习笔记(十) Redis集群搭建


1. 添加依赖

1<dependency>
2    <groupId>org.springframework.boot</groupId>
3    <artifactId>spring-boot-starter-data-redis</artifactId>
4</dependency>

2. 添加 Redis 配置

1spring:
2  redis:
3    cluster:
4      nodes: 127.0.0.1:9001,127.0.0.1:9002,127.0.0.1:9003
5    password: ******
6    timeout: 10000ms
7    database: 0
8    jedis:
9      pool:
10        max-idle: 8
11        min-idle: 1
12        max-active: 8
13        max-wait: 6000ms

这里我们使用了 jedis 连接池。

3. 创建操作 Redis 的 Service

1@Service
2public class RedisServiceImpl implements RedisService {
3
4    @Autowired
5    private StringRedisTemplate stringRedisTemplate;
6    private Logger logger = LoggerFactory.getLogger(RedisServiceImpl.class);
7
8
9    @Override
10    public void setStr(String key, String value) {
11        logger.info("插入 Redis 数据。入参:key:{},value:{}", key, value);
12        ValueOperations<String, String> operations = stringRedisTemplate.opsForValue();
13        operations.set(key, value);
14    }
15
16    @Override
17    public String getStr(String key) {
18        logger.info("获取 Redis 数据。入参:key:{}", key);
19        ValueOperations<String, String> operations = stringRedisTemplate.opsForValue();
20        String value = operations.get(key);
21        logger.info("获取 Redis 数据。出参:value:{}", value);
22        return value;
23    }
24
25    @Override
26    public void delStr(String key) {
27        logger.info("删除 Redis 数据。入参:key:{}", key);
28        ValueOperations<String, String> operations = stringRedisTemplate.opsForValue();
29        operations.getOperations().delete(key);
30    }

操作 Redis 的主要类是 stringRedisTemplate,这个类可以获取不同类型的 Redis操作对象。

1Stirng 类型:stringRedisTemplate.opsForValue()
2List 类型:stringRedisTemplate.opsForList()
3Set 类型:stringRedisTemplate.opsForSet()
4Hash 类型:stringRedisTemplate.opsForHash()

可以看到,opsForXXX() 不能删除 Redis 中的key,这个时候可以使用下面的方法,获取RedisOperations 对象。通过该对象进行一些 Redis 的操作。

1opsForHash().getOperations().delete(key);

4. 单元测试

我们针对这个 Service 写个单元测试,测试一下

1@RunWith(SpringRunner.class)
2@SpringBootTest()
3public class RedisServiceImplTest {
4    @Autowired
5    private RedisService redisService;
6
7    @Test
8    public void setStr() throws Exception {
9        redisService.setStr("TEST","1234");
10    }
11
12    @Test
13    public void getStr() throws Exception {
14        System.out.println(redisService.getStr("TEST"));
15    }
16
17    @Test
18    public void delStr() throws Exception {
19        redisService.delStr("TEST");
20    }
21}

转载请注明出处
本文链接:zdran.com/20180911.ht…