Redis的基本使用
1.下载安装,Redis的客户端:Redis Desktop Manager
2. 连接服务器的Redis

3.引入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
4.编写application.yml,配置连接Redis的host以及port等
spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://192.168.0.153:3306/sell?characterEncoding=utf-8&useSSL=false username: root password: 123456 redis: host: 192.168.0.153 port: 6379
5. 实例通过Redis与cookie实现分布式系统的登入与登出
@GetMapping("/login")
public ModelAndView login(@RequestParam("openid") String openid, HttpServletResponse response,
Map<String, Object> map) {
//1.从数据库检验openid
SellerInfo sellerInfo = sellerService.findBySellOpenId(openid);
if (sellerInfo == null) {
map.put("msg", ResultEnum.LOGIN_FAIL.getMsg());
map.put("url", "/sell/seller/product/list");
return new ModelAndView("common/error", map);
} else {
//2.将openid存入redis
String token = UUID.randomUUID().toString();
Integer expire = RedisConstant.EXPIRE;
stringRedisTemplate.opsForValue().set(String.format(RedisConstant.TOKEN_PREFIX, token), sellerInfo.getUsername(), expire, TimeUnit.SECONDS);
//3.将token存入cookie
CookieUtil.set(response, CookieConstant.name, token, CookieConstant.expire);
map.put("url", "/sell/seller/product/list");
return new ModelAndView("common/success", map);
}
}
@GetMapping("logout")
public ModelAndView logout(HttpServletRequest request,
HttpServletResponse response,Map<String, Object> map){
//1.从request中获取对应的cookie
Cookie cookie = CookieUtil.get(request);
//2.将Redis对应的Token取消
String token = cookie.getValue();
stringRedisTemplate.opsForValue().getOperations().delete(String.format(RedisConstant.TOKEN_PREFIX,token));
//3.将Cookie对应的token取消
CookieUtil.set(response,CookieConstant.name,null,0);
map.put("url", "/sell/seller/product/list");
map.put("msg",ResultEnum.LOGOUT_SUCCESS.getMsg());
return new ModelAndView("common/success", map);
}

浙公网安备 33010602011771号