大家好,我是游云968,之前我们说过redis的安装及一些基本的常识,今天我们来讲下redis在springBoot中的使用;
首先我们来看下如何配置
简单解释下:host - 端口号password - 密码(默认为空,如有需要可以去redis.windows.conf 文件中配置 requirepass 123456 - 这里表示设置redis密码为123456)database - redis可用数据库数,由于各业务场景需要分开存储,默认从第0个开始,共16个,默认配置数据库为0,这里配置使用数据库1。(个数也是可以通过修改redis.windows.conf文件中的databases选项进行自定义个数)
redis可视化软件
treeNMS - 下载地址解压版,按照内置教程无脑启动后如下,点击右上角设置redis具体地址后可以查看各个库中的具体数据,具体功能下载完可以自行查看。
pom文件配置 - (在springboot的基础上加上如下配置)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
代码
这里用的是 redisTemplate,只是简单的列举了几个String类型的常用的方法。
@Service
@Slf4j
public class RedisUtil {
@Autowired
private RedisTemplate redisTemplate;
/**
* 放入String类型
* @param key
* @param value
* @return
*/
public boolean set(final String key, Object value) {
boolean result = false;
try {
ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
operations.set(key, value);
result = true;
} catch (Exception e) {
log.error("保存出错: key {}, value {}",key,value,e);
}
return result;
}
/**
* 指定超时时间
* @param key
* @param value
* @param expireTime
* @return
*/
public boolean set(final String key, Object value, Long expireTime) {
boolean result = false;
try {
ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
operations.set(key, value);
redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);
result = true;
} catch (Exception e) {
log.error("保存出错: key {}, value {},expireTime {}",key,value,expireTime,e);
}
return result;
}
/**
* 取出
* @param key
* @return
*/
public Object get(final String key) {
Object result;
ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
result = operations.get(key);
return result;
}
/**
* 是否存在key
* @param key
* @return
*/
public boolean exists(final String key) {
return redisTemplate.hasKey(key);
}
/**
* 包含 pattern 的值
* @param pattern
* @return
*/
public Object getByPattern (final String pattern){
Set<Serializable> keys = redisTemplate.keys(pattern + "*");
return keys;
}
/**
* remove single key
* @param key
*/
public void remove(final String key) {
if (exists(key)) {
redisTemplate.delete(key);
}
}
测试代码 分别写几个uri来简单的测试下
@RestController
public class RedisController {
@Autowired
RedisUtil redisUtil;
@PutMapping(value = "/setValue")
public String setValue(){
redisUtil.set("001", "hello world!");
return "执行成功";
}
@GetMapping(value = "/getValue")
public String getValue(){
return (String) redisUtil.get("001");
}
@GetMapping(value = "/existsValue")
public Boolean existsValue(){
return redisUtil.exists("001");
}
@DeleteMapping(value = "/removeValue")
public String removeValue(){
redisUtil.remove("001");
return"删除成功";
}
}
启动项目,分别访问对应的url,在treeNMS中可以查看到redis数据库中的变化
好的,就先这样,下期讲什么,我还没想好