网上商城项目总结(七)使用Redis 缓存 + 单点登陆系统模拟session

商品详情优化——利用redis进行缓存 商品优化详情,利用redis进行缓存,以及解决缓存击穿、缓存穿透、缓存雪崩问题。 阅读详情

Redis:C语言开发的一种开源的高性能键值对数据库,是单线程的,不适合保存内容大的数据,会影响性能。NoSQL数据库,基于特殊的结构,将数据存到内存中的数据库(持久化数据方式RDB,AOF稍后写),性能更优,适合高并发读写,存储,访问需求。具有高扩展性,高可用性。

Redis五种数据类型:

①、字符串类型:最基础,最重要。key-value形式,用作缓存。主要方法,get/set,incr(常用于生成id),desc。

②、hash类型:key-field-value形式,用作缓存。相当于一个key对应一个map。

③、list类型:有顺序,可重复。

④、set类型:元素无顺序,不能重复。

⑤、sortedSet(zset):有顺序,不能重复。

后三种不太常用。

用到的其他一些方法:

设置key的过期时间:expire key second;

查看key的有效期:ttl key;

消除key的过期时间,key持久化:persist key;

其中key为键名。

redis数据的持久化方案:

RDB持久化:快照形式(默认方案),定期把内存中的数据存到磁盘。

AOF持久化:把所有操作的命令(增删改操作)保存到文件中,恢复时把所有命令执行一遍。

也可以设置无持久化状态,相当于一个加强的memcached。

 

使用Redis 缓存 + 单点登陆系统模拟session:

网上商城中,查询到的商品的信息,缓存至Redis中,下次查询商品时,查看缓存中是否有对应商品信息,有,则直接从缓存中读取,如果没有,则到数据库中读取,这样可以减轻数据库的压力。添加缓存时,设置缓存的过期时间(expire)时间到,redis自动删除数据,避免因为个别的、访问量不高的数据查询导致redis中保存过多数据。

sso单点登陆中,用户登陆后,将用户信息写入缓存,并写入cookie返回给浏览器。当浏览器访问商城中其他需要用户登录后才能操作的模块时(例如订单模块),后端读取用户的cookie信息,到redis缓存中查找相应的用户信息。如果缓存中不存在,返回登陆页面给用户;存在则直接读取缓存中用户的信息。

sso单点登陆的意义:集群环境下,用户访问网站不一定是同一个tomcat处理(前文提到的nginx负载均衡,将用户请求均匀有效地发给后面部署的多个tomcat服务器),每个tomcat有自己的session,如果像传统的保存session的方式保存用户信息,不同的tomcat无法互相读取,用户需要多次登陆,用户体验差。如果采用session复制,又有节点数的限制(tomcat本身压力就不小,如果需要大量处理复制session的工作,一样影响性能,通常session复制,配置tomcat节点最多5个)。sso单点登陆方式解决了以上问题,所以广泛应用于分布式系统架构中。

网上商城项目总结(八)缓存集群Redis-cluster Redis-cluster架构: Redis-cluster特点: ①、所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。 ②、节点的fail是通过集群中超过半数的节点检测失效时才生效。(所以通常redis集群会配置奇数个) ③、客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。... 阅读详情

相关推荐

通过redis(缓存)实现单点登录

跨应用访问 通过redis实现单点登录。即保证安全又减少多次输入密码的繁琐。

Redis实现商品信息对象缓存

在秒杀系统的开发中,为了提高系统性能和降低数据库压力,使用Redis进行对象缓存是一种常见的优化策略。本文将详细介绍如何在Spring Boot项目中,通过Redis缓存实现商品信息的对象缓存,以提高系统性能和响应速度。

jakelihua 625

基于Redis缓存商城分类以及商品信息Demo

基于Redis缓存商城分类以及商品信息,实现商城数据高速精确访问,源码,jar包

springboot整合Redis,保存商品和商品库存信息

(1)Redis配置类,防止存到Redis的数据是二进制或者乱码。(2)使用FastJson序列化。

Xmi2599的博客 976

详解使用JWT实现单点登录(完全跨域方案)

首先介绍一下什么是JSON Web Token(JWT)? 官方文档是这样解释的:JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且独立的方式,可以在各方之间作为JSON对象安全地传输信息。此信息可以通过数字签名进行验证和信任。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。 虽然JWT可以加密以在各方之间提供保密,但只将专注于签名令牌。签名令牌可以验证其中包含的声明的完整性,而加密令牌则隐藏其他方的声明。当使用公钥/私钥对签署令牌时,签名还证明只有持有私钥的一方是签署私钥的一方。 通俗来讲,JWT是一个含签名并

MMSE (Minimum Mean Square Error)均衡原理讲解

MMSE是一种将接收数据的MSE(均方误差)最小化的模型。有了这句话,很多问题就会在你的脑海中蹦出来。 什么是均方误差?最小化MSE "的物理含义是什么? 等等。 让我们从一个我们现在已经非常熟悉的通道模型开始。(我希望你现在也熟悉下面的表达方式。) MMSE作为一种均衡器,是一种后处理算法,它可以帮助我们找出接收到的数据,使之尽可能地接近原始数据(传输数据)。简而言之,MMSE中最重要的步骤是找到一个如下图所示的矩阵G。如果我们假设没有噪声,这个[G]矩阵可以简单的作为信道矩阵(H^-1)的倒数。但

Celeste的博客 4万+

Redis之商品缓存

缓存就是数据交换的缓冲区( Cache ), 是存储数据的临时地方, 一般读写性能较高降低后端负载提高读写效率, 降低响应时间数据一致性成本代码维护成本运维成本。

人生需要动态规划 学习需要贪心算法 1466

计算机考研复试面试常问问题 数据结构篇(下)

计算机考研复试面试常问问题 数据结构篇(下) 使用前需知(拒绝白嫖,如果对你有帮助,你只需点个赞就行): 注意:有人在闲鱼上盗卖我的资料,而且还有很多同学买了,请各位擦亮双眼,我是整理出来免费分享给大家的! 大家请多点赞和评论,这样后面的同学更容易百度到,不至于被人盗卖,我就不加水印影响大家使用了! 第一次整理,度不好控制,有不好的地方希望大家理解,后面可能会改进,造福今年之后的同学们! ...

程序员宝藏的博客 1万+

商店类型缓存redis实现

redis实现基本的商品列表缓存

qq_57294711的博客 714

机器学习预测材料性能:从特征工程到SHAP可解释性分析

机器学习在材料科学中的应用,核心在于将复杂的材料性能预测问题转化为数据驱动的建模任务。其基本原理是通过算法从历史数据中学习特征与目标属性之间的映射关系。这项技术的价值在于能够大幅加速新材料的发现与设计周期,降低传统“试错法”的高昂成本。在工程实践中,它广泛应用于预测如形成能、带隙、弹性模量以及居里温度等关键材料性能。具体到磁性材料领域,居里温度的准确预测对于永磁体和自旋电子器件设计至关重要。本项目深入探讨了如何利用特征工程从材料成分与结构中构建有效描述符,并借助SHAP这一可解释性工具,揭示模型决策背后的物

weixin_27155667的博客 650

Halcon工业相机开发全流程:从SDK配置到实时图像采集(C++版)

本文详细介绍了使用C++进行Halcon工业相机开发的完整流程,从SDK配置到实时图像采集的实现。涵盖环境搭建、设备初始化、回调机制、参数控制等关键环节,并提供异常处理和实战案例,帮助开发者快速掌握工业视觉系统的开发技巧。

weixin_33728268的博客 513

电商项目缓存问题的解决方案(初步)

电商项目的三级缓存解决方案1、nginx+lua利用OpenResty实现前端缓存2、JVM缓存3、redis缓存

pshdhx的博客 1539

Element-cascader级联选择器增加全选功能

element el-cascader

weixin_44384273的博客 3728

【商城】redis分布式多级缓存应用(瓶颈之殇)

缓存 发发发 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示; 增加了 图片拖拽 功能,你可以

一个人的人生 845

虚拟机ubuntu22.04.3中安装vitis2024.1注意事项

虚拟机ubuntu安装vitis2024.1

qq_52033578的博客 2495

避坑指南:Unity新版InputSystem在移动端的5个常见问题及解决方案

本文针对Unity新版InputSystem在移动端开发中的常见问题,提供了5个关键解决方案,包括虚拟摇杆灵敏度调节、多点触控冲突处理、按钮反馈延迟优化、手势识别与陀螺仪数据融合以及Android/iOS平台差异处理。这些实战经验帮助开发者高效解决触控适配难题,提升移动游戏体验。

soda5的博客 405

Redis入门及在商城案例中的使用

自学那么多月以来学到的知识点挺多几乎每天都在接受新东西,接受的多忘的也多,想回头再去找也不知道从哪里找了,所以决定执行好几个月前就决定的事情-写博客,用来记录自己每次所学习到的东西。由于自己实习的时候,自己做的项目的数据库就是用的MySql跟Redis。所以先写下以前在做商城案例的时候用的redis。

成都往右的博客 9983

RK平台PCIE-Ethernet扩展:Intel I210移植与性能飞升之路

本文详细介绍了Intel I210千兆以太网控制器在瑞芯微RK平台的移植与优化过程。通过硬件适配、内核配置、驱动开发及性能调优四个关键环节,实现了RK平台的网络性能提升。硬件方面,重点说明了PCIE接口的规范连接与供电检查;软件方面,系统阐述了内核配置、设备树修改和驱动编译流程。在性能优化环节,详细介绍了中断优化、缓冲区设置和TCP/IP协议栈调优策略,并采用Iperf和Netperf工具进行量化测试验证。测试结果显示,优化后的网络吞吐量提升20%以上,延迟降低40%,为工业控制、智能安防等场景提供了可靠的

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 352

《商城项目04》--Redis缓存的应用

一, redis的下载安装配置 1, 下载 贴个链接供参考使用:  redis-3.0.0.tar.gz 链接:https://pan.baidu.com/s/1wOBvnCdCm5zjeHRfvadwKQ  提取码:949t  2, 安装 <前提是有已安装Linux虚拟机可使用> 2.1  安装gcc编译器       yum install gcc-c++ 2.2 ...

weixin_39039342的博客 1285

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【mall-learning】03-mall整合Redis实现缓存功能

Redis的安装和启动 Redis是用C语言开发的一个高性能键值对数据库,可用于数据缓存,主要用于处理大量数据的高访问负载。 下载Redis,下载地址:https://github.com/MicrosoftArchive/redis/releases 下载完后解压到指定目录 在当前地址栏输入cmd后,执行redis的启动命令:redis-server.exe redis.windows.conf 整合Redis 添加项目依赖 在pom.xml中新增Redis相关依赖...

to_real的博客 452

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

使用redis对商城的首页添加缓存

1.redis服务:      String get(String key); String set(String key,String value); String hget(String hkey,String key); long hset(String hkey,String key,String value); long incr(Strin

有梦才叫青春 4331

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

redis缓存设计(商城)

聊聊商城项目缓存的使用 来长沙之后,做了一个商城的项目,虽然规模不大也使用到了缓存。 就结合代码聊下如何使用缓存,避免常见的问题。问题的解释都是copy其他大佬的。 说的很详细,很清楚。之前也有过一篇详细讲的(我只是搬运工。感谢大佬的付出) 缓存穿透(查询不存在的数据,疯狂loadDb) 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据...

来年三月 3143

淘淘商城第101讲——单点登录之用户登录页面的实现

我们来看下login.jsp页面,如下图所示。可以看到<input .../>标签中并没有定义onclick方法,只是定义了个id="loginsubmit",那么onclick事件在哪儿定义了呢? 其实是在js代码当中定义了,如下图所示,页面加载完后就给id为loginsubmit的按钮添加了onclick事件,当点击这个按钮的时候,会触发LOGIN对象的login方法,login方法要先检

李阿昀的博客 8266

网上商城项目总结(三)消息中间件ActiveMQ

目前常用的消息中间件:ActiveMQ,RabbitMQ,kafka。 ActiveMQ:目前流行的开源消息总线,支持JMS1.1,J2EE1.4规范。 消息中间件的作用: ①、解耦合。 项目中不同的子项目难免需要互相调用,将代码写在一起会造成代码耦合,不便后期维护修改。 ②、异步处理。 代码中有些调用比较耗时,但是返回用户页面时,无需这部分代码操作全部完成。例如:网上商城中,后台添加...

CCCCC_SSSSS的博客 872

商城项目_Redis中央缓存_页面静态化

因为商城项目使用的是微服务的架构,比如产品服务、订单服务、物流服务等等,不同的服务可能会部署在不同的电脑上,以前我们优化查询是用过缓存实现的,即将用户所需要访问的数据,在用户第一次查询的时候,就进入数据库进行查询,然后将所有的数据存放到缓存中,之后用户若再次访问就直接从内存中进行获取,不需要再访问数据库,这在性能上面优化了。并且当出现并发的情况时,比如:几千个用户同时访问同一个资源,这会给数据库或...

布谷鸟 1153

每天认识一个组件:Redis

Redis 是一个以内存为主要数据存储介质的数据结构服务器。它既可以用作缓存,也可以承担计数器、排行榜、会话存储、分布式协调、消息传递和实时数据处理等职责。

weixin_47983718的博客 84
上一篇: 网上商城项目总结(六) 图片服务器FastFDS
下一篇: 网上商城项目总结(八)缓存集群Redis-cluster
CCCCC_SSSSS
博客等级 码龄10年 3粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值