一、需求描述

  从自己当前负责参与开发的一个项目中来看,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. SqlSugar常见问题汇总

    1.已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭. There is already an open DataReader associated with this ...

  2. 我管你什么okr还是kpi,PPT轻松交给你

    word一键转ppt 通过[文件]→[选项]→[快速访问工具栏],选择[不在功能区中的命令],找到[发送到Microsoft PowerPoint ],单击[添加]后再[确定] 调出功能按钮后,就可以 ...

  3. Unity框架中的核心类

    组件:Component 在Unity中,所有的游戏对象都可以挂载组件.组件控制着游戏对象的行为和外观,例如渲染.动画.碰撞检测等. 而Component就是组件的基类,提供了一些通用的方法和属性,例 ...

  4. Web服务器实现|基于阻塞队列线程池的Http服务器|线程控制|Http协议

    基于阻塞队列生产者消费者模型线程池的多线程Web服务器 代码地址:WebServer_GitHub_Addr README 摘要 本实验通过C++语言,实现了一个基于阻塞队列线程池的多线程Web服务器 ...

  5. 17.1 使用内存映射文件--《Windows核心编程》

    Windows 提供了以下三种机制来对内存进行操控虚拟内存:最适合用来管理大量对象数组或者大型数据结构内存映射文件:最适合用来管理大型数据流(通常是文件),以及在同一机器上运行的多个进程之间的共享数据 ...

  6. Python脚本的输入输出

    一.必备知识回顾和补充 1. Hello world回顾 1.输出文本,使用print函数输出文本. 2.让用户输入名字,然后输出带名字的问候语.使用input函数获取用户的输入,使用变量保存输入值. ...

  7. NC20240 [SCOI2005]互不侵犯KING

    题目链接 题目 题目描述 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案. 国王能攻击到它上下左右,以及左上 左下右上右下八个方向上附近的各一个格子,共8个格子. 输入描述 只有一行 ...

  8. CSS实现展开动画

    CSS实现展开动画 展开收起效果是比较常见的一种交互方式,通常的做法是控制display属性值在none和其它值之间切换,虽说功能可以实现,但是效果略显生硬,所以会有这样的需求--希望元素展开收起能具 ...

  9. thinkphp集成editormd一系列实战

    介绍 最近php搞了个博客,需要集成markdown编辑器(富文本的太low了,效率也低),用的是时下比较火的editormd,除了基本的文档编辑我这里还实现了几个自己的需求: 使用ctrl-v实现将 ...

  10. ORACLE查询优化及gather_plan_statistics hint

    查询优化手段和gather_plan_statistics hint: 在10g以后我们可以通过利用gather_plan_statistics提示来了解更多的SQL执行统计信息,具体使用方法如下: ...