redis学习笔记(一)


前言

最近工作完成的差不多了,想着进行再复习一下之前学的知识,虽然经常用,原理什么的忘得差不多了,希望捡起来


一、session共享问题引入redis

1. 传统方式登录

1.1 用户填写用户名密码,点击提交,建立会话发送请求
1.2 服务器验证登录数据用户名密码,成功后写入域对象session对象
1.3 本次请求的相应里会存在一个sessionid的值,保存在本次会话客户端cookie中
1.4 后续访问 cookie中总能通过sessionid告诉服务器使用哪个session对象,从而在session域属性中获取数据username

2. session共享问题

2.1 由于使用session对象存储用户数据,导致服务器集群节点之间没法共享session对象,导致使用session解决的业务逻辑全部失败,其中包含登录逻辑

3. session共享解决方案

1.1 服务器之间同步session

缺点:大量占用服务器资源,session对象一旦过多,导致使用所有服务器内存溢出

1.2 负载均衡采用ip_hash

客户端ip地址不变,永远访问同一个后端服务器
缺点:客户端很难实现高可用的使用

1.3 引入第三方存储

将session里存储的数据,提取到网络系统的一个存储容器,比如数据库,redis
缺点:多占用了网络带宽
redis作为一个稳定的,性能速度高的存储技术,不二的选择

二、redis介绍

1. redis是什么

redis是一个能存储数据的容器,相当于跟数据库是一样的,能实现对数据的增删改查

2. 特性

2.1 nosql : not only structured query language 不仅结构化查询语言,一类操作命令的统称sql
2.2 key - value : 为了处理非结构化数据,使用key - value的数据结构存储数据,处理结构化数据的技术 - 关系型数据库,处理非结构化数据 - redis, mongdb,hdfs
2.3 内存运行 : redis在运行过程中,数据在内存中处理

redis使用结构 : 包含两个 服务端运行数据的进程、登录redis服务端操作数据的客户端
优点 : 速度快
缺点 : 1.内存容量相对于磁盘较小,redis存储空间资源稀缺 2. 内存断电数据丢失情况,数据容错性比较低

2.4 分布式 : 一个redis节点内存容量小,可以多启动几个redis,形成分布式集群解决容量小的问题,相对于单个redis进程,处理容量形成线程增长(总量还是不如磁盘多),分布式结构中就要解决分布式问题 - 数据分片问题
2.5持久化 : redis数据虽然是在内存中处理的,但是redis提供持久化功能,可以按照持久化机制,将内存数据保存在磁盘一份,即使内存数据断点丢失了,也可以保证数据依然存在继续被使用 - 提高redis容错性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值