真实开发中-redis在项目中的应用场景

一、需求描述

  从自己当前负责参与开发的一个项目中来看,redis主要的应用场景有如下几个,第一个是保存用户信息,这个需要频繁的获取。比如

在打开某一个页面进行查询时,就先需要获取用户信息,看用户是否具有查询权限;第二个应用场景是,当数据库查询比较慢时,也会使

用到redis缓存,第一次查询可能会比较慢,就将结果缓存在redis中,当第二次进行访问时就快多了;第三个应用场景是使用字典表进行翻

译某些字段的值,将字典表进行放在redis中进行存储;第四个应用场景是,当查询用户的权限时,将所有用户对应的权限信息放在redis中

进行存储。

二、需求分析

  将某些数据信息存储在redis中的一个主要目前就是便于程序在需要使用这些数据信息时,能够快速取用,而不用再去数据库中进行查询,

降低程序运行效率。特别是对于一些需要高频率调用的信息,如用户信息,权限信息等等,这些信息就非常适合存储在redis中,提供接口供

程序调用。

三、解决方案

  现在项目中使用redis的地方,前面两个是别人已经做好的了。后面两个是自己在开发过程中添加进去的,自己也在不断地学习,不断地

进步。下图是根据请求对象获取用户信息的部分代码,统一封装RedisService接口,提供给程序调用。目前项目一切运行良好,查询效率也提

升了不少。不断地学习,不断地总结,不断地进步,每天学习一小点,每天进步一点点。

/**
* Function :
* Author : csdn_
* Version : V2.1.0
* Date : 2020-01-13 14:17:00
* Description : 获取登录用户
* Return :
* History : Nothing
*/
@Override
@Transactional(readOnly = true)
public UserInfoOutVo getCurUser(HttpServletRequest request) {
String sessionId = CookieUtils.getSessionId(request);
if (StringUtils.isEmpty(sessionId)) {
return null;
}
UserInfoOutVo user = this.getCurUser(sessionId);
return user;
}

 

posted @ 2021-05-30 21:33  一只爱阅读的程序员  阅读(3642)  评论(0编辑  收藏  举报