一、需求描述

  从自己当前负责参与开发的一个项目中来看,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. 人工智能创新挑战赛:助力精准气象和海洋预测Baseline[2]:数据探索性分析(温度风场可视化)、CNN+LSTM模型建模

    "AI Earth"人工智能创新挑战赛:助力精准气象和海洋预测Baseline[2]:数据探索性分析(温度风场可视化).CNN+LSTM模型建模 1.气象海洋预测-数据分析 数据分 ...

  2. 火遍外网的Keychron测评,带你入坑;ps马上5.20了送一个给你的心爱的她/他。

    那些年用过的机械键盘 如果你经常上YouTube或Instagram,然后你又对键盘感兴趣,我相信你肯定看到过他--Keychron K2,他真的是一款曝光量很高的键盘. 1.键盘keychron k ...

  3. 3.3 DLL注入:突破会话0强力注入

    Session是Windows系统的一个安全特性,该特性引入了针对用户体验提高的安全机制,即拆分Session 0和用户会话,这种拆分Session 0和Session 1的机制对于提高安全性非常有用 ...

  4. 7000字详解Spring Boot项目集成RabbitMQ实战以及坑点分析

    本文给大家介绍一下在 Spring Boot 项目中如何集成消息队列 RabbitMQ,包含对 RibbitMQ 的架构介绍.应用场景.坑点解析以及代码实战.最后文末有免费领取龙年红包封面以及腾讯云社 ...

  5. 群联预告满血PCIe 5.0 SSD主控:飙上14.7GB/s

    群联电子将在CES 2024上展示两款新的PCIe 5.0 SSD主控方案,一个定位旗舰,一个面向主流. PCIe 5.0 SSD诞生已经差不多一年了,但是受限于群联E26主控的先天不足,以及闪存技术 ...

  6. (python)每日代码||2024.1.27||类方法与实例方法

    class test(): aaa = 111 bbb = 222 ccc = 333 @classmethod def cm(cls): cls.aaa="***" def im ...

  7. 关于DbgridEh滚动从表一起跟着滚动的分析

    我的实现:

  8. OGG常用运维命令

    1. 管理(MGR)进程命令 INFO MANAGER         返回有关管理器端口和进程id的信息. START MANAGER       开启管理进程 STATUS MANAGER    ...

  9. Java-生成字符串的MD5值

    方法一:public static String getMd5(String str) { MessageDigest md5 = null; try { md5 = MessageDigest.ge ...

  10. NC16590 [NOIP2010]乌龟棋

    题目链接 题目 题目描述 ​ 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. ​ 乌龟棋的棋盘是一行N 个格子,每个格子上一个分数(非负整数).棋盘第1 格是唯一的起点,第N 格是终点,游戏要求玩家 ...