目录
安装Redis
1、yum安装redis
yum -y install redis
2、启动redis
redis-server /etc/redis.conf&
3、操作redis
redis-cli
4、设置远程连接
1.将redis配置文件下载到本地: redis 配置文件是linux下的/etc/redis.conf ;
2.将redis.conf中的“bind 127.0.0.1”注释掉;
3.将redis.conf中的“protected-mode yes”改为“protected-mode no” ;
4.将修改后的redis.conf 上传至liunx下的/etc目录;
5.使用命令“redis-cli shutdown”先关闭redis 服务,再使用“redis-server /etc/redis.conf &”启动redis服务;
6.云服务防火墙或是安全策略里面开发redis端口6379。
Redis-分布式缓存
操作流程
SpringBoot框架中可以直接操作Redis缓存
SpringBoot集成Redis 实现分布式缓存
1、添加redis依赖
或者在pom.xml中添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2、配置redis
# redis连接的配置信息
spring.redis.host=101.42.46.10
spring.redis.port=6379
spring.redis.database=15
3、手动操作redis
@RestController
public class RedisController {
//1.引入redis模板
@Autowired
private StringRedisTemplate stringRedisTemplate;
@RequestMapping("/set")
public String setRedis(){
stringRedisTemplate.opsForValue().set("username","baekhyun");
return "redis存储成功!";
}
@RequestMapping("/get")
public String getRedis(){
String result=stringRedisTemplate.opsForValue().get("username");
return result;
}
}
前端效果
4、注解操作redis
@Cacheable:查询/添加;判断 redis是否有缓存,如果没有那么就把当前方法返回值存到redis;如果存在缓存直接返回。
@CachePut:修改;将方法返回值更新到redis 缓存中。
@CacheEvict:删除;将redis 中对应的缓存删除。
@RestController
public class RedisAnnController {
//存入或读取内存
@RequestMapping("/ann-get")
@Cacheable(value = "spring.cache",key = "#name+'-'+#pnumber")
public String get(String name,String pnumber){
if (!StringUtils.hasLength(name) || !StringUtils.hasLength(pnumber)){
return null;
}
System.out.println("执行了get方法");
return "name="+name+"|pnumber"+pnumber;
}
//更新缓存
@RequestMapping("/put")
@CachePut(value = "spring.cache",key = "#name+'-'+#pnumber")
public String put(String name,String pnumber){
if (!StringUtils.hasLength(name) || !StringUtils.hasLength(pnumber)){
return null;
}
System.out.println("执行了put方法");
return "[name="+name+"<->pnumber"+pnumber+"]";
}
//redis缓存删除
@RequestMapping("/del")
@CacheEvict(value = "spring.cache",key = "#name+'-'+#pnumber")
public void del(String name,String pnumber){
System.out.println("执行了缓存删除");
}
}
SpringSession持久化
存储到Redis
添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
修改配置
spring.session.store-type=redis
server.servlet.session.timeout=1800
spring.session.redis.flush-mode=on_save
spring.session.redis.namespace=spring:session
spring.redis.host=101.42.46.10
spring.redis.password=
spring.redis.port=6379
存储和读取代码
@RestController
public class UserController {
private final static String SESSION_KEY="USER_SESSION_KEY";
@RequestMapping("/login")
public String login(HttpSession session){
//存储session到redis
session.setAttribute(SESSION_KEY,"beakhyun");
return "login success";
}
@RequestMapping("/get")
public String get(HttpServletRequest request){
String username="";
HttpSession session= request.getSession(false);
if (session!=null){
//从redis中获取session用户
Object userinfo=session.getAttribute(SESSION_KEY);
if (userinfo!=null){
return userinfo.toString();
}
}
return username;
}
}
前端效果