redis使用及Spring Session+Redis实现Session共享

1.redis的使用


首先引入依赖


IDEA可以直接创建项目前搜redis直接导入

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

配置文件

application.properties:

spring.cache.type=redis
spring.redis.host=127.0.0.1
spring.redis.port=6379


使用注解

@CacheConfig:声明缓存名称  例如:

@CacheConfig(cacheNames = "nil")

@Cacheable:取缓存  如

@Cacheable(key = "#name")
public String getSession(HttpSession session, HttpServletRequest req) {
    return session.getAttribute("name").toString()+"-----"+req.getServletContext().getRealPath("/");
}

 @CachePut:修改缓存

@CachePut(key = "#name")
public void setSession(HttpSession session, String name) {
    session.setAttribute("name", name);
}

 @CacheEvict:删除缓存,allEntries:true表示清除value中的全部缓存,默认为false。

@CacheEvict(cacheNames="books", allEntries=true)
public void loadBooks(InputStream batch)


关于实现session共享


pom.xml如下

<dependencies>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-thymeleaf</artifactId>
       </dependency>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
   <dependency>
      <groupId>org.springframework.session</groupId>
      <artifactId>spring-session-data-redis</artifactId>
   </dependency>
   <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-pool2</artifactId>
      <version>2.4.2</version>
   </dependency>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
   </dependency>
   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.0.4.RELEASE</version>
   </dependency>
</dependencies>


写了一个简单的页面 index.html

<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="/setsession">
    <input type="text" name="name"><input type="submit" value="提交">
</form>
<form action="/getsession">
    <input type="submit" value="获取">
</form>
</body>
</html>

Controller如下

@CacheConfig(cacheNames = "nil")
@Controller
class HelloController {

    @RequestMapping("/index.action")
    public String toyc() {
        return "index";
    }

    @RequestMapping("/setsession")
    @ResponseBody
    @CachePut(key = "#name")
    public void setSession(HttpSession session, String name) {
        session.setAttribute("name", name);
    }

    @RequestMapping(value = "/getsession",produces = "text/html;charset=utf-8")
    @ResponseBody
    @Cacheable(key = "#name")
    public String getSession(HttpSession session, HttpServletRequest req) {
        return session.getAttribute("name").toString()+"-----"+req.getServletContext().getRealPath("/");
    }
}
然后就是启动项目开始测试了(一定要先启动redis)

    

点击提交以后


可以从启动的redis cmd界面看到

输入命令keys *



然后点击获取可以看到



这样就实现了共享了,还在继续学习搭建nginx 实现共享


学习博客

https://mp.weixin.qq.com/s?__biz=MzI1NDY0MTkzNQ==&mid=2247483757&idx=1&sn=32801f98320d503360806bdd2c26e689&scene=21#wechat_redirect


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值