美文网首页
springboot连接redis

springboot连接redis

作者: haiyong6 | 来源:发表于2020-10-04 13:33 被阅读0次

近期想升级一下自己网站的登录,从原来简单的session验证做成微服务的JWTtoken验证,思路是前端请求后端登录接口,后端分发token以及用户信息存储到redis,并设置过期时间,前端localStorage存储token和用户信息,每次请求前端header里放token,后端过滤器从redis里拿token做验证。这样就要用到配置redis。

之前写过一篇docker安装redis以及java使用redis配置记录-普通webSSM,是基于jedis自己写连接池工具类的方式,当然也可以用这种方式,但是目前的框架已经升级到了springboot,配置起来就比之前更加简单的多了,可以用spring-boot-starter-data-redis这个jar包,里面集成了StringRedisTemplate这个类,springboot把常用的方法都封装到这个类里了,可以直接调用,简单了很多。

因为我的springboot框架是之前2.1.1的版本,所以在maven仓库找到了相应版本引入:

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

application.properties加入配置:

#redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=xxx
#Redis数据库索引(默认为0)
spring.redis.database=0
#连接超时时间(毫秒)
spring.redis.timeout=5000
#连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
#连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1
#连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
#连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0

测试类:

package com.zhaohy.app.controller;

import java.util.concurrent.TimeUnit;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.zhaohy.app.service.TestService;
import com.zhaohy.app.sys.annotation.RecordLog;


@Controller
public class TestController {
    
    @Autowired
    TestService testService;
    
    @Autowired
    private StringRedisTemplate redisTemplate;
    
    @RequestMapping("/test/test2.do")
    public void test2(HttpServletRequest request) {
        redisTemplate.opsForValue().set("testKey", "12", 10, TimeUnit.SECONDS);
        System.out.println("======" + redisTemplate.opsForValue().get("testKey"));
    }

}

就是如此简单。
redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set
默认是主从模式连接(最基本的连接方式),生产环境基本都是集群模式,只需在配置文件加入集群节点配置即可:

spring.redis.cluster.nodes=115.28.208.105:6379,47.105.92.89:6379,118.190.151.92:6379

本机上只装了单机redis,没有配置集群,所以没有试,有兴趣的同学可以试一下。

参考:https://www.cnblogs.com/cxiaocai/p/11715874.html

相关文章

网友评论

      本文标题:springboot连接redis

      本文链接:https://www.haomeiwen.com/subject/kqrnuktx.html