Skip to content
本页导航

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及以上

lhiro