springboot整合redis缓存的笔记

本笔记使用RedisTemplate来整合redis,和Jedis是两码事。值得注意的是,RedisTemplate虽然是专门用于同spring整合的,它高度封装了Jedis,但有趣的是,它的效率远远不如Jedis(大佬们测的)。
首先引入依赖

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis</artifactId>
		</dependency>

然后在yml文件中配置(这里只展示redis的配置):
这里注意,host的配置,如果想按具体IP来链接,需要先在redis安装目录的redis.windows.conf中,将127.0.0.1改成你的ip,或者改为0.0.0.0,意为任意ip均可链接redis

spring:
  ## Redis 配置
  redis:
    ## Redis数据库索引(默认为0)
    database: 0
    ## Redis服务器地址
    host: 192.168.110.114
    ## Redis服务器连接端口
    port: 6379
    ## Redis服务器连接密码(默认为空)
    password:
    jedis:
      pool:
        ## 连接池最大连接数(使用负值表示没有限制)
        #spring.redis.pool.max-active=8
        max-active: 1024
        ## 连接池最大阻塞等待时间(使用负值表示没有限制)
        #spring.redis.pool.max-wait=-1
        max-wait: -1
        ## 连接池中的最大空闲连接
        #spring.redis.pool.max-idle=8
        max-idle: 200
        ## 连接池中的最小空闲连接
        #spring.redis.pool.min-idle=0
        min-idle: 0

在controller类中加入自动注入,并编写缓存代码

	@Autowired
    private RedisTemplate redisTemplate;

接下来就是真正起到缓存作用的代码了,这里要提一下,使用redisTemplate,是对Jedis的高度封装。

	 //返回的结果集,一会决定这个结果集从redis中取还是数据库
	 List<Xkkm> xkkms = new ArrayList<Xkkm>();
	 //拼接查询用的主键
     String key = dm+"_xxkey";
     String str = redisTemplate.opsForValue().get(key)+"";
     //判断redis中是否包含这个key的list集合
     if(str==""||str==null||str.equals("")||str.equals("null")){
    
    
		 //访问数据库
         xkkms = xkkmService.queryXkkmByXxdm(dm);
         //转为josn防止乱码
         String s = JSON.toJSON(xkkms).toString();
         //存入redis
         redisTemplate.opsForValue().set(key, s);
     }else{
    
    
         //从redis中取出
         String string = redisTemplate.opsForValue().get(key)+"";
         //转化为json格
         xkkms = JSONObject.parseArray(string,Xkkm.class);
     }

Guess you like

Origin blog.csdn.net/Funky_oaNiu/article/details/111180514