redis缓存
Posted 南岭寒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis缓存相关的知识,希望对你有一定的参考价值。
缓存:便携式的,可移动的容器
redis介绍:
nosql,key-value,非关系型,可持久化,内存,分布式的,缓存,数据库;
nosql: not only structured query language 不仅仅结构化查询语言 PB ZB EB YB BB NB(70万亿吨一TB硬盘,地球65万亿吨) DB
结构化数据:有规律的一类数据;例如:人的信息,动物信息,考试信息
非结构化数据:海量的不具备任何共同特性的数据集合;例如:网页,日志;图片
关系型数据库:体现不同类结构化数据之间的关系的数据,例如ORACLE mysql
非关系型数据库:存储的是非结构化的海量数据;无法体现数据的关系;例如 mongoDB redis
key-value: 目前阶段,非关系型数据库使用的存储数据的格式
可持久化,内存:
服务器存储的介质,只有2个,一个是磁盘(可靠性高,速度慢),一个是内存(速度快,可靠性低);由于内存数据在断电,宕机后数据消失,访问缓存时造成数据未命中,出现一定范围的数据未命中,将会导致缓存的雪崩/缓存击穿
redis具有持久化数据到磁盘的能力,将内存数据在写入之后按照一定规格存储在磁盘文件中,宕机,断电后可以启动redis是读取磁盘的文件恢复缓存数据;
分布式:
分布式集群;
分布式:当个任务被多个节点切分处理,叫做分布式处理一个任务;
集群:一批节点在同时处理一个或多个任务;
redis的分布式:单个服务器内存,磁盘空间有限,无法处理海量的缓存数据,必须支持分布式的结构;
缓存:
缓存的逻辑在SSM框架中的使用;
数据库缓存:
sql语句是key值,查询结果resultSet是value,当同一个查询语句访问时(select * from t_product),只要曾经查过,调用缓存直接返回resultSet,节省了数据库技术读取磁盘数据的时间;
持久层缓存:
减少了连接数据库的时间;减少了resultSet封装成对象的过程;
业务层和控制的缓存:
减少调用层次;
描述缓存在业务层的逻辑;
查询商品信息;
判断当前查询在缓存是否有数据
§ 如果有数据,直接返回,当前请求结束
§ 如果没有数据,查询持久层数据库数据,获取数据存储在缓存一份,供后续访问使用;
缓存雪崩/缓存击穿
海量请求访问服务器,服务器的性能由缓存支撑,一旦一定范围的缓存数据未命中,请求的数据访问涌入数据库;承受不了压力造成宕机--重启--海量请求并未消失--宕机--重启,系统长时间不可用;这种情况就是缓存的雪崩.
以上是关于redis缓存的主要内容,如果未能解决你的问题,请参考以下文章