第一步 打开服务器redis
[root@VM-4-16-centos ~]# cd /usr/local
[root@VM-4-16-centos local]# ./redis-5.0.2/src/redis-server ./redis.conf &
第二步 redis管理工具连接

第三步 在springboot中加入jedis和commonpool2的依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.6.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.76</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.4.2</version>
</dependency>
第四步 创建jedis工具类
public class RedisUtil {
/**
* 创建一个jedis的线程池
*/
public static JedisPool jedisPool;
public static JedisPool open(String host, int port){
if(jedisPool == null){
//设置线程池的参数
JedisPoolConfig config = new JedisPoolConfig();
//设置最大线程数量
config.setMaxTotal(100);
//设置空闲数
config.setMaxIdle(2);
//设置检查项为true,避免为null的情况
config.setTestOnBorrow(true);
//创建JedisPool
jedisPool = new JedisPool(config,host,port,6000,"root");
}
return jedisPool;
}
/**
* 关闭线程池
*/
public static JedisPool close(){
if(jedisPool != null){
jedisPool.close();
}
return jedisPool;
}
}第五步 在业务层引用redis
@Service
public class LoginServiceImpl extends ServiceImpl<LoginMapper, LoginDO> implements LoginService {
@Autowired
private LoginMapper loginMapper;
@Override
public ResultVo loginVerification(LoginDO loginDO) {
//定义一个公共返回类
ResultVo resultVo = new ResultVo<LoginDO>();
//将前端传的值先从redis中查找,没有值就在redis中创建
String host = "服务器地址";
int port = 6379;
Jedis jedis = null;
JedisPool pool = null;
try {
pool = RedisUtil.open(host,port);
jedis = pool.getResource();
if(jedis.get(loginDO.getUsernumber().toString()) != null){
if(jedis.get(loginDO.getUsernumber().toString()).equals(loginDO.getPassword())){
resultVo.setCode(1);
resultVo.setData(jedis.get(loginDO.getUsernumber().toString()));
System.out.println("使用了redis登录成功");
}else {
resultVo.setCode(-2);
System.out.println("使用了redis登录失败");
}
}else{
//前端传递的值在是实现类验证
QueryWrapper<LoginDO> loginQueryWrapper = new QueryWrapper<>();
loginQueryWrapper.eq("usernumber",loginDO.getUsernumber());
LoginDO loginVerify = this.loginMapper.selectOne(loginQueryWrapper);
//loginVerify为空表示数据空中无数据, -1代表无数据
if(loginVerify == null){
resultVo.setCode(-1);
}else{
//判断传入的密码是否匹配 , -2代表密码错误
if(!loginVerify.getPassword().equals(loginDO.getPassword())){
resultVo.setCode(-2);
}else{
resultVo.setCode(1);
resultVo.setData(loginVerify);
}
}
//在redis创建学生信息
jedis.set(loginDO.getUsernumber().toString(),loginDO.getPassword());
}
}finally {
}
return resultVo;
}
在前端登陆验证
看看后端控制台输出

redis使用完毕
版权声明:本文为qq_44372953原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。