当前位置: 首页 > wzjs >正文

秦皇岛网站制作与网站建设公司现在搜什么关键词能搜到网站

秦皇岛网站制作与网站建设公司,现在搜什么关键词能搜到网站,织梦响应式茶叶网站,省好多会员app由于不同的tomcat服务器之间的session是不共享的,当请求如果在不同tomcat服务器之间切换就会导致数据丢失的问题。 使用redis可以解决session数据共享的问题 redis是tomcat以外的存储,存在redis中的数据,任何一台tomcat都能看得见&#xff0…

由于不同的tomcat服务器之间的session是不共享的,当请求如果在不同tomcat服务器之间切换就会导致数据丢失的问题。
在这里插入图片描述

使用redis可以解决session数据共享的问题
redis是tomcat以外的存储,存在redis中的数据,任何一台tomcat都能看得见,且redis是基于内存存储,又是k、v结构的存储方式。

redis保存登录用户信息时value的选择

在保存登录的用户信息时,

  1. 可以使用String结构,以json字符串来保存(比较直观、但是占用空间大):
    在这里插入图片描述
  2. 可以使用hash结构将对象中每个字段独立存储(对单个字段做CRUD、占用空间小):
    在这里插入图片描述

简单的数据类型(验证码),可以用string作为value存储
复杂的数据类型(对象),可以用hash作为value存储

UserDTO userDTO = BeanUtil.copyProperties(user, UserDTO.class); // 将User对象转成Hash存储
String tokenKey = RedisConstants.LOGIN_USER_KEY + token;
Map<String, Object> userMap = BeanUtil.beanToMap(userDTO, new HashMap<>(),CopyOptions.create().setIgnoreNullValue(true) // 忽略空值.setFieldValueEditor((filedName, filedValue)-> String.valueOf(filedValue))); // 自己设置字段名和字段值
stringRedisTemplate.opsForHash().putAll(tokenKey, userMap);
stringRedisTemplate.expire(tokenKey, RedisConstants.LOGIN_USER_TTL, TimeUnit.MINUTES); // 设置30分钟有效期

redis保存用户信息时设置有效期问题

在redis中保存用户信息时,一定要给当前用户设置一个30分钟有效期,这样也可以避免数据在redis中占用过多的内存。但是注意:并不是用户登录后过了30分钟就直接得让他重新登录。应该是:用户登录后,如果还有访问系统,应该重新更新一遍有效期为30分钟。这就需要在登录拦截器中进行不断更新有效期

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {// 1. 获取请求头中的tokenString token = request.getHeader("Authorization");if(StrUtil.isBlank(token)){response.setStatus(401);return false;}// 2. 获取Redis中的用户String tokenKey = RedisConstants.LOGIN_USER_KEY + token;Map<Object, Object> userMap = stringRedisTemplate.opsForHash().entries(tokenKey);// 3. 判断用户是否存在if(userMap.isEmpty()){response.setStatus(401);return false;}UserDTO userDTO = BeanUtil.fillBeanWithMap(userMap, new UserDTO(), false);// 4. 保存用户信息到ThreadLocalUserHolder.saveUser(BeanUtil.copyProperties(userDTO, UserDTO.class));// 5. 刷新token有效期stringRedisTemplate.expire(tokenKey, RedisConstants.CACHE_SHOP_TTL, TimeUnit.SECONDS);return true;}

在实际开发的时候,我们可以设置两个拦截器:

  • 一个拦截器拦截所有请求,刷新token的有效期;
  • 一个拦截器拦截部分请求,判断ThreadLocal中是否存在用户
    在这里插入图片描述
http://www.dtcms.com/wzjs/298284.html

相关文章:

  • 做视频网站需要什么架构营销技巧和营销方法心得
  • 广州网站建设怎样做网络营销活动推广方式
  • 网站前后端分离怎么做济南百度竞价
  • 做co网站网络营销策划书格式
  • 如何免费搭建网站正规网站建设公司
  • 代理网站官网seo怎么读
  • 做网站有维护费是什么费用平台推广方式
  • 南京网站设计平台seo基础知识培训视频
  • 阳江招聘网价格百度seo 优化
  • 推广公众号的9种方法北京百度seo排名点击器
  • 网站seo的关键词排名怎么做的手机百度安装下载
  • 潍坊网站建设公司哪家好淘宝seo排名优化软件
  • 网站制作青岛公司企业网站推广方法实验报告
  • 网站建设公司问候语整合营销策划名词解释
  • 专业的营销型网站制作免费自助建站哪个最好
  • 广州做网站公司哪家好seo网络优化专员
  • 整合营销策略新站seo快速排名 排名
  • 碑林网站制作浏览器下载
  • 如何做产品展示网站全自动精准引流软件
  • 医院网站制作seo学堂
  • 青岛网站建设方案托管seo研究中心骗局
  • 惠州网站建设外包公司的网站
  • 济南网络公司排名网络优化seo是什么工作
  • 网站做SEO优化爱站网爱情电影网
  • 攻击自己做的网站吗sem优化软件哪家好
  • 网站后台超链接怎么做小程序生成平台系统
  • 笑话网站php程序上饶seo博客
  • xml文件里做网站超链接免费网站推广网站在线
  • 有口碑的徐州网站建设线上推广的三种方式
  • 做海报的软件关键词优化技巧