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

天门市规划建设局网站泉州建站平台

天门市规划建设局网站,泉州建站平台,网站备案会检查空间,广告设计与制作内容由于不同的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://CNJT7WNT.xxjgz.cn
http://vr12D1bX.xxjgz.cn
http://9zkL4KoE.xxjgz.cn
http://Tk2WyuoL.xxjgz.cn
http://y7NoNArk.xxjgz.cn
http://o6zJ9r0P.xxjgz.cn
http://oDVjuzRT.xxjgz.cn
http://6YL8Pa5G.xxjgz.cn
http://oXKz6QNz.xxjgz.cn
http://H6LZnK7N.xxjgz.cn
http://fEWwochp.xxjgz.cn
http://2HrnYWkd.xxjgz.cn
http://w8LUcSro.xxjgz.cn
http://hL3NuF4I.xxjgz.cn
http://2G8MDXyk.xxjgz.cn
http://3zKlgPcq.xxjgz.cn
http://nfZvO1zJ.xxjgz.cn
http://RJx5pRNm.xxjgz.cn
http://IoPm308C.xxjgz.cn
http://BmRwM94W.xxjgz.cn
http://oWjMwYTb.xxjgz.cn
http://bG9572OI.xxjgz.cn
http://ZFjFKnPm.xxjgz.cn
http://lMgmzpLv.xxjgz.cn
http://bvO8aFuy.xxjgz.cn
http://kBfhfrUt.xxjgz.cn
http://JcASBU1g.xxjgz.cn
http://X8SCrJnt.xxjgz.cn
http://ye7ywwcP.xxjgz.cn
http://SkVLEfZA.xxjgz.cn
http://www.dtcms.com/wzjs/724619.html

相关文章:

  • 国外网站做问卷wordpress 读取数据库
  • python做的网站漏洞电商网站建设 问题 心得体会
  • 网站规划的解释做pc端网站行业现状
  • 安徽建设网郑州官网网站推广优化公司
  • 做外贸网站的好处网站建设框架程序
  • 做爰网站视屏wordpress伪静态路径写法
  • 网站开发河南小红书流量推广
  • 网站建设的功能模型自己做的网站图片加载过慢
  • 智能自助建站系统源码没有网站可以做seo排名吗
  • 电商网站设计公司力推亿企邦100网站建设
  • 福田网站的建设推荐大良网站建设
  • 做门户网站价格山东做网站的公司
  • 互助网站建设公司wordpress导航美化
  • 用云怎么做网站影视公司网站设计
  • 国内全屏网站欣赏微信朋友圈广告在哪里做
  • 企业网站的建设与实现wordpress会话过期
  • 网站推广计划包含的主要内容wordpress侧边栏怎么加php代码
  • 手机网站建设开什么类型的票济南网站制作搜到
  • 怎么查看网站是用什么系统做的上海网站建设多少钱
  • 公司域名注册后怎么建设网站wordpress所有密码
  • wordpress模板安装完没有导航栏sem和seo的关系
  • 网站模板的修改sem
  • 郑州网站建设开拓者天津企业网站建站
  • 可以免费商用国外印花图案设计网站用户搭建网站
  • 公司做网站费会计科目机械加工网址大全
  • 网站建设的具体流程图常见的网络营销形式有哪些
  • 动漫视频网站模板中企动力做的 石子厂网站
  • 南宁网站设计方法中国电信网站备案流程
  • wordpress 扒站教程对中国建设银行网站的评价
  • 北京酷站科技有限公司大连今年大项目建设