Appearance
Redis 工具类
基于常用的操作,工具类使用 StringRedisTemplate 作为默认模板
RedisUtils
为了方便开发者快速操作Redis并进行对象转换,RedisUtils进行了常用方法的整合,具体可以使用IDEA进行代码提示。
提示: RedisUtils 需要使用自动注入的方式引入
示例:
java
@Component
public class RedisTest {
@Autowired
RedisUtils redisUtils;
@Test
public void testGet(){
String risKey1 = "invest:stock:quoteBaseHist:301158";
String res1 = redisUtils.get(risKey1);
System.out.println("res1:" + res1);
}
}@Component
public class RedisTest {
@Autowired
RedisUtils redisUtils;
@Test
public void testGet(){
String risKey1 = "invest:stock:quoteBaseHist:301158";
String res1 = redisUtils.get(risKey1);
System.out.println("res1:" + res1);
}
}多源Redis连接(仅限单点模式)
在业务开发过程中,往往涉及到同一个服务去调用另一个服务的Redis数据或另一个database的数据,之前的解决方案是将所有数据放在同一个database中,这样处理会造成配置调整及数据重算,为了解决此问题,基于RedisUtils的基础上,扩展了Redis的多源操作。
操作步骤:
- extends RedisOperation
- 注入
StringRedisTemplate实例
示例:
java
@Component
public class RedisUtils2 extends RedisOperation {
@Autowired
private Environment env;
@PostConstruct
public void init(){
RedisConfig config = new RedisConfig( env, "2");
StringRedisTemplate template = config.getRedisTemplate();
super.init(template);
}
}@Component
public class RedisUtils2 extends RedisOperation {
@Autowired
private Environment env;
@PostConstruct
public void init(){
RedisConfig config = new RedisConfig( env, "2");
StringRedisTemplate template = config.getRedisTemplate();
super.init(template);
}
}备注:
env 环境变量,用于动态获取application的配置
identifier 配置扩展符,此项用于代码获取配置的key值。(key: 默认配置名-扩展符)
例如: identifier = 2, 则
RedisConfig读取的配置host配置为 spring.redis.host-2如果扩展配置项不存在,则会读取默认配置。
如: spring.redis.host-2 不存在, 则会读取 spring.redis.host 值,如 spring.redis.host也不存在,则使用系统默认值: 127.0.0.1
目前多源数据适配的配置key列表如下:
- spring.redis.host
- spring.redis.port
- spring.redis.database
- spring.redis.password
- spring.redis.timeout
- spring.redis.jedis.pool.max-active
- spring.redis.jedis.pool.max-wait
- spring.redis.jedis.pool.max-idle
- spring.redis.jedis.pool.min-idle
- spring.redis.lettuce.pool.max-active
- spring.redis.lettuce.pool.max-wait
- spring.redis.lettuce.pool.max-idle
- spring.redis.lettuce.pool.min-idle
连接池的选用
如果配置了jedis的属性,则根据RedisTemplate的选择规则,使用Jedis的连接池,否则使用lettuce连接池。
使用jedis连接池时,请引入jedis客户端依赖
java<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>4.2.2</version> </dependency><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>4.2.2</version> </dependency>
Redisson客户端
Spring Cloud Investoday Starter 2.7.3-SNAPSHOT及以上