Spring Boot 整合Redis 包含Java操作Redis哨兵
作者:哇塞大嘴好帥(哇塞大嘴好帅)
1. 配置环境
在SpringBoot2.0版本以后,原来使用的jedis被替换成为了lettuce
jedis:采用的是直连,多个线程操作是不安全的。
lettuce:采用netty,实例可以在多个线程进行共享,不存在线程不安全。
Maven:
<!-- 操作Jedis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.3.3.RELEASE</version>
</dependency>
application.yml
spring:
redis:
# Redis Url
host: 服务器id
# Redis 端口
port: 6379
# Redis 密码
password: 您Redis的密码
# 设置数据库序号
database: 0
测试:
@Autowired
StringRedisTemplate redisTemplate;
@Test
void contextLoads() {
//获取连接
RedisConnection redisConnection = redisTemplate.getConnectionFactory().getConnection();
System.out.println(redisConnection.ping());
}
2.操作基本数据类型
2.1 String (字符串)
//操作字符串
redisTemplate.opsForValue();
2.2 List(操作list)
//操作list列表
redisTemplate.opsForList();
2.3 操作 Hash
//操作hash
redisTemplate.opsForHash();
2.4 Set 集合
//操作Set 集合
redisTemplate.opsForSet();
2.5 Zset(有序集合)
//操作有序集合
redisTemplate.opsForZSet();
3.操作特殊数据类型
3.1 地图
//操作地图
redisTemplate.opsForGeo();
3.2 基数统计
//操作基本统计
redisTemplate.opsForHyperLogLog();
4.Java操作Redis哨兵
application.yml配置文件
spring:
redis:
password: 您Redis的密码
sentinel:
nodes: 您Redis哨兵的ip:port
master: 您哨兵的名字
Test
package com.dazuizui.api;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import javax.annotation.PostConstruct;
/**
* @author 杨易达
* @Time 2020/9/17 22:16
*/
@SpringBootTest
class ApiApplicationTests {
/**
* 注入Springboot自动配置好的RedisTemplate
*/
@Autowired
StringRedisTemplate redisTemplate;
@Test
public void testString (){
//操作Redis
System.out.println(redisTemplate.opsForValue().get("abc"));
}
}