SpringBoot+Jedis+RedisTemplate

那jedis就是集成了redis的一些命令操作,封装了redis的java客户端。提供了连接池管理。一般不直接使用jedis,而是在其上在封装一层,作为业务的使用。
在Spring和SpringBoot中,内置封装了RedisTemplate和StringRedisTemplate。
两者配置不同,见个人项目seckill
 redis:
    host: 127.0.0.1
    timeout: 100
    port: 6379
    password: null
    lettuce:                //用RedisTemplate和StringRedisTemplate的配置
      pool:
        max-wait: 10
        max-active: 100
        max-idle: 10
        min-idle: 0
    jedis:                  //用jedis方法的配置
      pool:
        max-active: 100
        max-idle: 10
        min-idle: 0
        max-wait: 100000

注意采用RedisTemplate时需要更换序列化工具,不过比使用Jedis更加简洁

@Configuration
public class RedisTemplateForSpringBoot {
	private final Logger logger = LoggerFactory.getLogger(getClass());

	@Bean
	public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
		Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(
				Object.class);
		ObjectMapper om = new ObjectMapper();
		om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
		om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
		jackson2JsonRedisSerializer.setObjectMapper(om);
		RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
		template.setConnectionFactory(redisConnectionFactory);
		template.setKeySerializer(jackson2JsonRedisSerializer);
		template.setValueSerializer(jackson2JsonRedisSerializer);
		template.setHashKeySerializer(jackson2JsonRedisSerializer);
		template.setHashValueSerializer(jackson2JsonRedisSerializer);
		template.afterPropertiesSet();
		logger.info("RedisTemplate序列化工具转换为:" + jackson2JsonRedisSerializer.getClass().getName());
		return template;
	}
}

注意此处必须采用 @Resource注解,@Autowired会报错(注入机制不同)

	@Resource
	private RedisTemplate<String, Seckill> redisTemplate;

@Autowired按byType自动注入,而@Resource默认按 byName自动注入

Github项目代码:https://github.com/ybeario/seckill

好的,我可以为您提供一个简单的示例。首先,您需要在pom.xml中添加以下依赖项: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency> ``` 接下来,您需要在application.properties文件中配置Redis连接信息: ``` spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password= ``` 然后,您可以创建一个Redis配置类: ```java @Configuration public class RedisConfig { @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.password}") private String password; @Bean public JedisConnectionFactory jedisConnectionFactory() { JedisConnectionFactory jedisConFactory = new JedisConnectionFactory(); jedisConFactory.setHostName(host); jedisConFactory.setPort(port); jedisConFactory.setPassword(password); return jedisConFactory; } @Bean public RedisTemplate<String, Object> redisTemplate() { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(jedisConnectionFactory()); return template; } } ``` 最后,您可以在需要使用Redis的类中使用RedisTemplate来进行操作: ```java @Autowired private RedisTemplate<String, Object> redisTemplate; public void setValue(String key, Object value) { redisTemplate.opsForValue().set(key, value); } public Object getValue(String key) { return redisTemplate.opsForValue().get(key); } ``` 这就是一个简单的Spring Boot整合RedisJedis的示例。当然,实际应用中可能需要更复杂的配置和操作,您可以根据自己的需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值