前端的工作,暂告一段落,这里开始spring boot引入redis之旅
-
前提:
要安装好redis,并且可以顺利访问
用IDE创建好一个spring boot项目 -
首先在pom文件中引入
<!-- 整合redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 然后再yml文件中配置redis
spring:
redis:
database: 0
host: 192.168.1.170
port: 6379
password: ******
pool:
max-idle: 8
min-idle: 0
max-active: 8
max-wait: 1
timeout: 3000
- 添加一个简单的redis工具类,想要更多的方法,网上找找,有很多。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
/**
* 功能描述:redis工具类
* 对于redisTpl.opsForValue().set(key, value)进行了一次封装,不然每次都要这样保存值
* 而封装后只需:new RedisClient().set(key,value);
*/
@Component
public class Redis {
@Autowired
private StringRedisTemplate redisTpl; //jdbcTemplate
// 功能描述:设置key-value到redis中
public boolean set(String key ,String value){
try{
redisTpl.opsForValue().set(key, value);
return true;
}catch(Exception e){
e.printStackTrace();
return false;
}
}
// 功能描述:通过key获取缓存里面的值
public String get(String key){
return redisTpl.opsForValue().get(key);
}
}
- 写一个测试,测试redis是否连接成功
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.util.DigestUtils;
@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public class RedisTest {
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
public void save(){
stringRedisTemplate.opsForValue().set("xudod","supperxudod");
Assert.assertEquals("supperxudod",stringRedisTemplate.opsForValue().get("xudod"));
}
}
- 运行该测试类,测试通过后可以用redis可视化工具RedisDesktopManager查看刚才添加的键值
至此,redis成功引入spring boot,这篇文章就先写到这里。下边留下一个引子,记录,redis在项目中的具体使用
spring boot项目中使用redis--2018年9月5日添加
- 说明,前端向后端发送登录请求时,会通过lua连接redis做用户校验,那么这里设定,用户保存和更新时,会同步保存和更新用户信息到redis。这是使用spring boot使用redis的第一个场景
/**
这段代码是用户管理实现类中的一个添加用户的方法
**/
@Override
public BaseResp<Integer> add(UserBase userBase) {
BaseResp<Integer> baseResp = new BaseResp<>();
try {
userBase.setId(UUIDTool.getUUID());
//将用户信息保存如数据库
int insertSelective = userBaseMapper.insertSelective(userBase);
//将用户信息写入redis
boolean redisResult = redis.set(userBase.getAccount(), userBase.getPassword());
if(insertSelective > 0 && redisResult == true) {
baseResp.setCode(BaseResp.SUCCESS);
baseResp.setData(insertSelective);
}else{
baseResp.setCode(BaseResp.ERROR);
baseResp.setData(null);
baseResp.setMessage("无异常,添加数据失败。或者用redis缓存数据失败!");
}
} catch (Exception e) {
baseResp.setCode(BaseResp.ERROR);
baseResp.setData(null);
baseResp.setMessage("异常,添加数据失败:" + e.getMessage());
}
return baseResp;
}
网友评论