首页 / REDIS / 利用Redis优化登录模块
利用Redis优化登录模块
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了利用Redis优化登录模块,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1869字,纯文字阅读大概需要3分钟。
内容图文
![利用Redis优化登录模块](/upload/InfoBanner/zyjiaocheng/876/4f99bcac7cff40cd9a8b9ce5128a3a2e.jpg)
为了减少数据库压力,提高系统速度,在项目中引入了Redis。
之前登陆验证码信息存储在Session中。每次请求前,拦截器会验证登录信息,每次到从数据库中去用户信息。通过Redis改进这两项功能。
首先安装redis,并导入redis依赖,配置好redis。
对于验证码信息,每次获取验证码请求都要有一个主键来在redis中存验证码的值,对于同一个客户端我们又希望是相同的key,因此我们采用在cookie中保存UUID的方式,代码如下:
@RequestMapping(path = "/kaptcha", method = RequestMethod.GET) public void getKaptcha(HttpServletResponse response/*, HttpSession session*/) { // 生成验证码 String text = kaptchaProducer.createText(); BufferedImage image = kaptchaProducer.createImage(text); // 将验证码存入session // session.setAttribute("kaptcha", text); // 验证码的归属 String kaptchaOwner = CommunityUtil.generateUUID(); Cookie cookie = new Cookie("kaptchaOwner", kaptchaOwner); cookie.setMaxAge(60); cookie.setPath(contextPath); response.addCookie(cookie); // 将验证码存入Redis String redisKey = RedisKeyUtil.getKaptchaKey(kaptchaOwner); redisTemplate.opsForValue().set(redisKey, text, 60, TimeUnit.SECONDS); // 将突图片输出给浏览器 response.setContentType("image/png"); try { OutputStream os = response.getOutputStream(); ImageIO.write(image, "png", os); } catch (IOException e) { logger.error("响应验证码失败:" + e.getMessage()); } }
查询用户信息时,我们只需重写service中的通过用户id查询用户的方法,若redis中取不到,则从数据库中取,并且将user对象转为json存入到redis中。此处要注意一点,为了保持缓存与数据库的一致性,在对用户进行改动时,要增加删除缓存操作。代码如下
public User findUserById(int id) { // return userMapper.selectById(id); User user = getCache(id); if (user == null) { user = initCache(id); } return user; } private User initCache(int userId) { User user = userMapper.selectById(userId); String redisKey = RedisKeyUtil.getUserKey(userId); redisTemplate.opsForValue().set(redisKey, user, 3600, TimeUnit.SECONDS); return user; }
内容总结
以上是互联网集市为您收集整理的利用Redis优化登录模块全部内容,希望文章能够帮你解决利用Redis优化登录模块所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。