redis应用笔记

news2024/11/26 16:30:57

1.登录服务

        在登陆服务中,如果将数据全部存储到tomcat中,当存在多个tomcat的时候,数据是无法同步的,这就导致了数据的共享问题:

             1、每台服务器中都有完整的一份session数据,服务器压力过大。

             2、session拷贝数据时,可能会出现延迟

解决办法就是采用redis, redis完美的符合了以下的要求:

                1.同步性

                2.基于内存,高效率

                3.满足key-value结构

        同时注意,redis的string与hashset的区别

优化后的流程如下图

 首先我们很容易想到,将用户的登录手机号作为key,而后对于存储到redis中的用户的凭证,我们选择生成随机的token,使用token是为了不暴露用户的手机号(隐私处理).同时我们还要注意,session是能在tomcat中自动同步的,但是token是做不到的,我们需要手动同步token.而token是怎么做到帮助我们识别用户的登录状态的呢,答案就是在每次的服务器回传的过程中,都会在头部添加一个token字段.

2.商品缓存

 

 

 

 缓存穿透:

        指的是客户端在请求数据的过程中,缓存和数据库中都没有要请求的数据,这样缓存永远都不会生效,请求都会打到数据库.这样就导致数据库在频繁的查找数据.服务器性能大幅度下降.

        解决办法:

        1.缓存空对象: 对于同一个请求的资源,比如请求不存在的id= -1的资源,在缓存中添加id=-1的键,将其值设置为null,这样避免了同样的id导致的反复查找,下次查找id=-1的资源可以直接从缓存中查出来.

                优点: 实现简单,维护方便

                缺点: 一旦请求的资源变换,还是需要继续查找.

                        额外的内存消耗

                        可能造成短期的不一致(第一次请求的时候数据没有,缓存中设置为null,但是第二次请求时数据库中已经有了上次请求的id对应的数据,仍然会返回null)

        2.添加布隆过滤器:它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。

                优点: 内存占用少,没有多余的key

                缺点: 实现很复杂,并且存在误判的可能

        

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot整合Redis实现优惠券秒杀服务(笔记+优化思路版)

本文属于看黑马的redis的学习笔记,记录了思路和优化流程,精简版最终版请点击这里查看。 文章目录一、全局ID生成器1.1 理论1.1.1 全局唯一ID生成策略1.2 代码(Redis自增)二、实现优惠券秒杀下单2.1 SQL2.2 SQL对应实体类2.2.1 普通券实体类2.2.2 秒杀券实…

声纹识别之说话人验证speaker verification

目录 一、speaker verification简介 二、主流方案和模型 1、Ecapa_TDNN模型 2、WavLm 三、代码实践 1、Ecapa_TDNN方案 a、模型结构 b、loss c、数据处理 d、模型训练和评估 e、说话人验证推理 2、WavLm预训练方案 a、模型结构和loss b、数据处理 c、模型训练 …

html5支持的几种音频格式介绍

关于音频的格式 ogg音频 Ogg全称应该是OGGVobis(oggVorbis)是一种新的音频压缩格式,类似于MP3等的音乐格式。Ogg是完全免费、开放和没 有专利限制的。OggVorbis文件的扩展名是.OGG。Ogg文件格式可以不断地进行大小和音质的改良,而不影响旧有的编码器或…

合合信息扫描全能王“照片高清修复”功能上线,3秒还原老照片

穿越时光的“美颜”!合合信息智能图像处理技术让老照片“焕新”“春运”已经开始,团聚时刻即将到来。和亲人们一起围炉话家常,翻开旧日的相册,品读一张张泛黄的照片背后最牵动人心的情感,也是“年味”所在。时光会在照片上留下斑驳…

巨量引擎·2023教育Future大会:扎根内容生态,做好经营提效

求知方寸间,如风过千川。当知识创作成为新的潮流,当教育数字化迈入直播与短视频新时代,当图书电商红红火火,如何做好教育全产业链升级与创新?新年伊始,巨量引擎举办“行知.行为.行万里 2023教育Future大会”…

嵌入式实时操作系统的设计与开发(六)

中断系统结构 在RTOS中,中断是与具体硬件平台关联度最大的部分,为了实现高可移植性、可配置性,中断子系统依照aCoral的整体结构来设计,划分为HAL(硬件抽象层)和内核层。 在HAL层先将各种中断汇拢&#xff…

第三周周二1.10

-A 添加规则 -I 插入 -F 清空 -L 查看 -p 调整默认规则 -D 删除规则 dport : -j ACCEPT DROP REJECT LOG /var/log/messages -n 以数字的形式显示结果 -v 详细信息 -x 精确的 -line-number 行号 删除:指…

2023 年你应该知道的 10 个开源项目

精心策划的 2023 年 GitHub 上最有趣的开发工具和项目列表。1.NetBeansNetBeans 是一个开源的集成开发环境,因其支持多种编程语言和平台而受到开发人员的欢迎。动图2.OpenCVOpenCV 是一个用于图像和视频处理的开源计算机视觉库。它广泛用于对象检测、面部识别和机器…

嬴图 | 走进 Ultipa Manager 之 高可视化

Ultipa Manager是嬴图数据库管理系统基于网页端的应用。自2019年至今,已迭代最新至v4.2版本。本系列,笔者将分三篇文章,引导大家走进嬴图之Ultipa Manager,详细了解其高可视化、数据科学家工具箱、便捷的数据迁移3大亮点功能&…

分享91个NET源码,总有一款适合您

NET源码 分享91个NET源码,总有一款适合您 91个NET源码下载链接:https://pan.baidu.com/s/1dqb9XgiiVfsVkq-wqKt3Kg?pwd275d 提取码:275d 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...&…

mybatis插入mysql数据库PersistenceException 数据库连接超时

mybatis插入mysql部分数据失败mybatis插入mysql数据库PersistenceException1、异常堆栈信息:2、问题原因:3、问题排查3.1 查看数据库连接信息3.2 问题解决3.2.1 Spring项目可以在配置文件里面设置3.2.2 修改conn改成局部变量mybatis插入mysql数据库Persi…

python 语法(空行、变量、if条件控制、循环语句)编码示例

文章目录前言python 语法(空行、变量、if条件控制、循环语句)编码示例1 空行,在python中空行也是代码2 单个变量赋值、多个变量赋值3 if条件控制4 循环语句4.1 while循环4.2 for 循环前言 如果您觉得有用的话,记得给博主点个赞,评论&#xff…

C++程序的编译与运行

C和C语言类似,也要经过编译和链接后才能运行。 下图是 C/C 代码生成可执行文件的过程: C源文件的后缀 C语言源文件的后缀非常统一,在不同的编译器下都是.c。C 源文件的后缀则有些混乱,不同的编译器支持不同的后缀,下…

新应用——设备巡检管理,系统化更具稳定性

对于生产制造型企业来说,随着企业逐步发展,产量增大,生产设备的稳定性和安全性就成为企业经济效益的关键。设备巡检是有效保证设备安全和稳定的重要环节。通过设备巡检,定期掌握各台设备的运行情况及周围环境的变化,尽…

算法竞赛百日——快速排序 - 分治

本文已收录于专栏 🌲《百日算法竞赛》🌲 目录 本文已收录于专栏 🌲《百日算法竞赛》🌲 快速排序 解题思路 ​ 思路分析: 模拟: AC_Code 二分查找 用二分法求 平方根 二分模板 快速排序 给定你…

纯前端导出Excel并修改样式

之前写过一篇前端导出:Vue实现导出功能(无后端配合) ,但是当时没考虑到样式的问题,后来要求导出的Excel单元格的样式也需要调整,尤其是宽度,第一想到的就是xlsx-style这个包,之前也没…

Python基础篇---生成器和模块

生成器对象 生成器对象其本质是自定义迭代器,就是需要我们自己写代码产生的迭代器。 生成器对象也是节省存储空间的 特性与迭代器对象一致。 def index():print(第一次输出)yield 1print(第二次输出)yield 2 1 2 3 4 5 6 7 8 9 10 当我们没有加括号调用之前&…

学习JavaScript,有哪些好的博客或者网站推荐?

前言 特意制作了一个Js整体的学习路线以及相关知识点博客讲解以及各类网站学习的资源整合,希望对你有帮助哈~ 废话少说,我们直接进入正题,先放上路线导图: 部分重要知识点 基础性知识 声明变量 null 和 undefined 详解JavaS…

code warrior IDE win10 64位安装保姆级教程

以下安装步骤是在win10 64位系统运行程序默认安装在C盘第1步:第2步:将PE_Plugin.dll文件复制到com文件夹中,路径如下:C:\Program Files(x86)\Freescale\CodeWarrior for Microcontrollers V6.3\bin\plugins\com第3步:以…

Blender里的三种绑定 (三)骨骼

文章目录Blender里的三种绑定.骨骼.骨骼基础.骨骼的父子关系.挤出骨骼.细分骨骼.骨骼分层.骨骼分组.骨骼约束.骨骼被遮挡.对称骨骼.为模型绑定骨骼.刚体物体,只跟随骨骼的移动,不随骨骼移动发生形变,如机械.软体物体,跟随骨骼的移…