spring boot使用RedisTemplate整合Redis

前言

最近使用SpringBoot整合Redis,使用的是RedisTemplate,实现SpringBoot与redis的整合。记录一下
在Springboot的官网上我们也能看到,官方现在推荐的是SpringDataRedis形式。

Redis基本配置

在这里插入图片描述
统一返回格式不用管

1,创建redis的配置

  1. redis.hostName=127.0.0.1
  2. redis.port=6379
  3. redis.timeout=10000
  4. #连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal
  5. redis.maxActive=600
  6. #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
  7. redis.maxWaitMillis=3000
  8. #最大空闲数
  9. redis.maxIdle=20
  10. #是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
  11. redis.testOnBorrow=true
    其实引入的jar包(spring-boot-starter-data-redis),这些信息是默认的,不配置也可以,当然和默认不一致就必须修改了。

2,配置RedisTemplate

@Bean
	public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
		StringRedisTemplate template = new StringRedisTemplate(factory);
		RedisSerializer<String> strinRedisSerializer = new StringRedisSerializer();
		Jackson2JsonRedisSerializer<String> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<String>(
				String.class);
		ObjectMapper om = new ObjectMapper();
		om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
		om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
		jackson2JsonRedisSerializer.setObjectMapper(om);
		// 如果key是String 需要配置一下StringSerializer,不然key会乱码 /XX/XX
		template.setKeySerializer(strinRedisSerializer);
		template.setValueSerializer(jackson2JsonRedisSerializer);
		template.setHashValueSerializer(jackson2JsonRedisSerializer);
		template.afterPropertiesSet();
		return template;
	}

设置redisTemplate对象,主要是它的序列化方法,如果存储的key和vlue都是简单字符串,可以直接使用stringRedisTemplate,网上的资源很多都是配置了一大堆,但是感觉不是必须的,例如RedisConfig,里面的信息都是重复application.properties的信息。

还是要根据自己的需求来选择,有些场景复杂的,配置可能也会复杂。

3,添加RedisUtil.java
实际操作中调用的redis操作工具类,这个资源网上就有很多,内容都差不多,这里就不列出来了,这里给一个链接RedisUtil工具类,但是有一个小细节,会报空指针
在这里插入图片描述
需要调用redis工具类的时候@Resource自动注入redisTemplate。

4,测试

@Resource
	private RedisUtil redisUtil;

	@GetMapping("/getRedis")
	public Map<String, Object> getRedis(){
		redisUtil.set("20190403", "测试数据");
		String value = redisUtil.get("20190403").toString();
		log.info(value);
		log.info("读取redis成功");
		return JsonResultHolder.getJsonResult(true, null, "执行成功");
	}

很简单是吧。

5,关于分库
网上的资料有的添加了分库,这个要看场景了,如果是信息分类是必要的,例如分区域,北方、南方什么的,或者更大,分国内外,那可能分库操作是有益的,而这也意味着Redis 内存占用越来越多,需要处理的数据量一定非常多,要谨慎起来。
而我的例子只是简单的信息,那就没有必要分库了

6,pom引入的jar包
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值