一.为什么要用redis???
答:简单来说是为了减少数据库的访问量,就是某个较固定的数据(如商品、咨询等),一个用户访问就要在数据库拉取一次,如果有100000个人就需要访问100000次。但是这些数据都是一样的,所以剩下的99999次都是都可认为是无用功,所以现在就需要用到缓存了
简介:redis作为一个NoSql(非关系数据库)的数据库,它存取值的方式和Map一样,支持hash、list、set、string(记得没错的话)这几种类,存取简单
现在开始贴代码 (spring boot + mybatis-plus)
首先需要导入redis的依赖包
<!--redis依赖包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
然后配资redisService
package com.boot.util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class RedisService {
@Autowired
StringRedisTemplate stringRedisTemplate;
@Resource(name = "stringRedisTemplate")
ValueOperations<String, String> valOpsStr;
@Autowired
RedisTemplate<Object, Object> redisTemplate;
@Resource(name = "redisTemplate")
ValueOperations<Object, Object> valOpsObj;
/**
* 根据指定key获取String
*
* @param key
* @return
*/
public String getStr(String key) {
return valOpsStr.get(key);
}
/**
* 设置Str缓存
*
* @param key
* @param val
*/
public void setStr(String key, String val) {
valOpsStr.set(key, val);
}
/**
* 删除指定key
*
* @param key
*/
public void del(String key) {
stringRedisTemplate.delete(key);
}
/**
* 根据指定o获取Object
*
* @param o
* @return
*/
public Object getObj(Object o) {
return valOpsObj.get(o);
}
/**
* 设置obj缓存
*
* @param o1
* @param o2
*/
public void setObj(Object o1, Object o2) {
valOpsObj.set(o1, o2);
}
/**
* 删除Obj缓存
*
* @param o
*/
public void delObj(Object o) {
redisTemplate.delete(o);
}
}
这里面有很多方法可使用
简单测试(我这里存入的是对象)
第一次运行结果为
再运行就是
这一次就没走数据库运行了 (单次看不多想过 如果访问量很大 ,使用redis会快很多)