一、需求描述

  从自己当前负责参与开发的一个项目中来看,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;
}

真实开发中-redis在项目中的应用场景的更多相关文章

  1. redis在项目中的应用

    redis在项目中的应用  ps:PHP 会自动 关redis连接 不需要手动关 对于临时的数据 可以不经过数据库直接redis上操作<pre>/*消息队列实例 消息队列详细步骤在http ...

  2. 【poi】用POI新建一个xlsx文件【或者说将数据存入到xlsx中】/【将数据从xlsx中获取到项目中】

    第一部分:写入xlsx中 使用POI创建一个xlsx文件: 项目结构如下: 具体使用的POI中的 XSSFWorkbook   xlsx对象 Sheet 工作簿对象 Row 行对象 Cell  单元格 ...

  3. quick 中 "我的项目" 中的列表从那里来的?

    quick 中 "我的项目" 中的列表从那里来的? 1. WelcomeScene.lua 场景 self:createOpenRecents(cc.player.settings ...

  4. spring3.0结合Redis在项目中的运用

    推荐一个程序员的论坛网站:http://ourcoders.com/home/ 以下内容使用到的技术有:Redis缓存.SpringMVC.Maven.项目中使用了redis缓存,目的是在业务场景中, ...

  5. Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决

    问题描述: mac笔记本本身会自带几个python版本,比如python2.7版本,我没有改动mac默认的python版本,只是安装了python3.7版本. 使用Pycharm开发Python项目没 ...

  6. iOS开发多线程在实际项目中的运用

    实际项目开发中为了能够给用户更好的体验,有些延时操作我们都会放在子线程中进行. 今天我们就来聊聊多线程在实际项目中的运用. 我们先来看看多线程的基础知识: 1.多线程的原理: 同一时间,CPU只能处理 ...

  7. iOS开发小技巧--微博项目中的键盘工具条

    微博项目中的键盘工具条 项目中的键盘工具条不能使用inputAccessoryView,因为inputAccessoryView不能实现键盘隐藏的时候,工具条还显示在眼前,如图: 所以,果断决定将工具 ...

  8. 关于在Java EE 下开发web,出现项目中的外部包没有tomcat的包的原因

    在新建的项目的时候,要设置目标服务器运行环境,把那个设置成tomcat,这样,项目中就会有tomca的api

  9. 【iOS开发】在ARC项目中使用非ARC文件

    ARC的出现应该说是开发者的一大福利,苹果是推荐使用的,但是因为之前没有ARC机制,好多比较好的类库都是使用的非ARC,或是有些大牛还是不喜欢用ARC,封装的类也是非ARC的,想要在自己的ARC项目中 ...

  10. 开发日记:在VS项目中使用SVN版本号作为编译版本号

    在实际项目中(特别是作为产品的项目),版本号是必不可少的一部分.版本号的规则也有许多种,在此不讨论具体的编码规范.对于迭代的产品,版本繁多,特别是有多个实施项目所使用产品的版本不同(基于定制需求)时, ...

随机推荐

  1. Prompt learning 教学[最终篇]:Chatgpt使用场景推荐、优秀学习资料推荐、AI工具推荐

    Prompt learning 教学[最终篇]:Chatgpt使用场景推荐.优秀学习资料推荐.AI工具推荐 1.chatgpt使用场景推荐 各位应该在各种平台看到不少可以尝试使用的场景,我这里仅收录: ...

  2. 4.基于Label studio的训练数据标注指南:情感分析任务观点词抽取、属性抽取

    情感分析任务Label Studio使用指南 1.基于Label studio的训练数据标注指南:信息抽取(实体关系抽取).文本分类等 2.基于Label studio的训练数据标注指南:(智能文档) ...

  3. 环境调试bug【一】

    1.报错修改`np.bool`---bool H:\Anaconda3-2020.02\envs\parl\lib\site-packages\paddle\fluid\framework.py:54 ...

  4. Linux进程间通信 [补档-2023-07-27]

    Linux进程间通信 10-1 简介 ​ 在Linux下,进程之间相互独立,每个进程都有自己不同的用户地址空间.任何一个进程的全局变量在另 一个进程中都看不到,所以进程和进程之间不能相互访问.如果非要 ...

  5. Git企业开发控制理论和实操-从入门到深入(五)|标签管理

    前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总 然后就是博主最近最花时间的一 ...

  6. P7167 [eJOI2020 Day1] Fountain 题解

    题目链接:Fountain 很不错的基础算法组合题:单调栈+倍增 首先考虑到一个事实,就是下面第一个比当前半径大的位置会成为移动的第一次落脚点,抽象下就是下面出现的第一次比自身大的半径,这个问题显然可 ...

  7. CF940F Machine Learning题解

    题目链接:洛谷 或者 CF 不是特别难的题,抽象下题意就是算区间次数出现的次数 mex 和带单点修改.看到范围 \(1e5\) 还带修改,传统的 mex 求法里貌似就莫队类算法好带修,考虑带修莫队. ...

  8. drawio画图软件使用入门

    drawio是一个画图软件,擅长处理流程图,可以替换visio用来画流程图,也可以编辑visio文件. 体验地址:https://app.diagrams.net/ 截图如下: 可以直接使用在线版本, ...

  9. 程序员减少BUG的两个小妙招!

    原创:陶朱公Boy(微信公众号ID:taozhugongboy),欢迎分享,转载请保留出处. ​ 点评: 我们说衡量一个程序员水平的高低往往有很多因素,但有一个因素至关重要即代码质量. 如果程序员写的 ...

  10. CentOS7 卸载/home 扩大/root空间

    卸载home 备份home分区文件 # 新系统无视 tar cvf /tmp/home.tar /home 修改fstab(这一步非常重要,千万别漏了) 准备卸载/home文件系统,centos启动时 ...