文章目录
一、redis功用
1、redis的应用场景
1)redis核心应用场景即作为缓存
我们需要一次性加粗样式从数据库获取大量数据,加上高并发时候,数据库会崩溃;即使用了分库分表,但是不崩溃的前提是应用卡顿,所以需要把数据先查询好,放到内存中保存起来,这也叫做缓存;
2)redis全局登陆场景即单点登陆
redis的使用方法之单点登陆场景,即全局登陆场景,白话解释为:当一个客户端第一次登陆到服务器后,会把客户端的cookid发送到服务器端,服务器端会根据cookid创建一个session,当下次客户端请求来的时候,就会根据服务端的session保存的cookid进行识别,这样就可以登陆了;但是若把服务端采用分布式,则不同服务器中就不会保留有此session数据,这样就又需要重新登陆,麻烦。
2、redis的原理
1)redis缓存的原理
(1)redis缓存的原理概述
缓存的实质就是在内存中存数据,所以表现缓存的方式有很多,如写map来存临时数据,写对象来存临时数据等;redis原理就是类对象缓存即缓存,根据自己的数据结构,在内存中存数据,只不过是可以做到持久化,这就是redis区别其它临时缓存的优势,即有自己的数据结构,且是内存全局的;
(2)redis缓存原理模拟助理解
2)redis单点登陆的原理
(1)redis单点登陆的原理概述
redis的使用方法之单点登陆场景,即全局登陆场景,白话解释为:当一个客户端第一次登陆到服务器后,会把客户端的cookid发送到服务器端,服务器端会根据cookid创建一个session,当下次客户端请求来的时候,就会根据服务端的session保存的cookid进行识别,这样就可以登陆了;但是若把服务端采用分布式,则不同服务器中就不会保留有此session数据,这样就又需要重新登陆,麻烦。
(2)redis单点登陆的原理模拟助理解(顺带讲解了拦截器流程)
注意:配置中的<mvc:exclude-mapping path=“路径”>是指放过这个路径,其余路径才是要拦截的;
对上面controller层中login()方法的具体实现:
3、redis的使用方法之缓存场景
1) redis缓存包的引用
2) redis缓存包类的相关参数配置
3) redis缓存包的使用方法
不同项目框架下的redis使用方法,略有不同,体现在对redis类对象的实例化方式上,springBoot框架是用注解来实例化的,xml是用<bean>标签来实例化的;其余的使用一样;
(1)springBoot框架下redis的使用方法
Step1:这个的实例化是以注解的形式来实例化的;
Step2:注解引入类对象(即引入redis这个中间件缓存)
Step3:对redis缓存中数据进行读写操作,同下;
(2)xml框架下redis的使用方法
Step1:这个的实例化是以标签来实例化的;
Step2:注解引入类对象(即引入redis这个中间件缓存)
Step3:对redis缓存中数据进行读写操作
4) redis缓存包的存储数据结构
4、redis的使用方法之单点登陆场景
1) redis单点登陆包的引用
注意:哪个类中要引入,就那个文件夹的pom.xml中引入;
2) redis单点登陆包类的相关参数配置
3) redis单点登陆包的使用方法
不同项目框架下的redis使用方法,略有不同,体现在对redis类对象的实例化方式上,springBoot框架是用注解来实例化的,xml是用<bean>标签来实例化的;其余的使用一样;
(1)springBoot框架下redis的使用方法
Step1:这个的实例化是以注解的形式来实例化的;
Step2:注解引入类对象(即引入redis这个中间件缓存)
Step3:对redis缓存中数据进行读写操作,同下;
(2)xml框架下redis的使用方法
Step1:这个的实例化是以标签来实例化的;
Step2:注解引入类对象(即引入redis这个中间件进行单点登陆)
Step3:对redis单点登陆中数据进行读写操作
对上面controller层中login()方法的具体实现:
5、redis相关网址
二、cookie功用
1、cookie的应用场景
一般情况,此方式已经不用了,除非是非常简单的,客户端和单服务器的会话;
2、cookie的原理
把用户数据,保存到客户端;
3、cookie的使用方法
三、session功用
1、session的应用场景
一般情况,除非是非常简单的,客户端和单服务器的会话;
2、session的原理
把用户数据,保存到服务端;
3、session的使用方法
四、cookid,session和redis三者区别
cookid是客户端的,每一个浏览器有一个cookid;所以换一个浏览器后就要重新登录了;
session是服务器的,所以只要服务器不崩,则任何时候都可以登陆;当然换了个新的服务器肯定就不行了;
redis是服务器创建的,是全局的,是把session数据放到了redis中的,因此可以实现单点登陆即全局登陆;就是服务器集群后,依然不影响,因为redis有 自己的服务器内存存数据;