网站代码案例,产品设计个人作品集,杭州软件开发外包公司,科技网站设计案例目录
一、概念
1.非关系型数据库#xff08;NoSQL#xff09;的介绍
2.什么是redis
3.redis的作者
4.Redis的特点
5.redis的应用场景
6.高度概括知识
一、二 缓存穿透、缓存击穿、缓存雪崩的概念
#xff08;一#xff09;缓存穿透
#xff08;二#xff09;缓…目录
一、概念
1.非关系型数据库NoSQL的介绍
2.什么是redis
3.redis的作者
4.Redis的特点
5.redis的应用场景
6.高度概括知识
一、二 缓存穿透、缓存击穿、缓存雪崩的概念
一缓存穿透
二缓存击穿 三缓存雪崩
二、下载安装Redis操作步骤 一、概念
1.非关系型数据库NoSQL的介绍 答随着互联网web2.0网站的兴起传统的关系数据库在应付web2.0网站的高并发和纯动态网站已经显得力不从心。NoSQL数据库非关系型数据库的产生就是为了解决大规模集合多重数据种类带来的挑战尤其是大数据应用难题
2.什么是redis
答 RedisRemote Dictionary Server )即远程字典服务是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value的非关系型数据库。Redis的数据都基于缓存的所以很快每秒可以处理超过10万次读写是已知性能最快的Key -Value DB。也可以实现写入磁盘中保证了数据的不丢失而且Redis的操作是原子性的。
3.redis的作者
答 redis的作者他叫Salvatore Sanfilippo来自意大利的西西里岛现在居住在卡塔尼亚。目前供职于Pivotal公司。
4.Redis的特点
1性能极高--redis读取速度是110000次/s写入的速度是81000次/s
2丰富的数据类型String、List、Hash、Set、Ordered Set.
3原子--Redis的所有操作都是原子性的就是要么成功执行要么失败完全不执行
5.redis的应用场景
缓存、排行、计数器应用、分布式锁、社交网络、消息队列、共享Session、位操作
6.高度概括知识
1基于内存实现的。因为内存要比用磁盘读写的MySQL速度要快很多。
2高效的数据结构。Redis 支持多种数据数据类型每种基本类型可能对多种数据结构。
3字符串长度处理。
4空间预分配。SDS修改和空间扩充会额外分配未使用的空间减少性能损耗。
5惰性空间释放。SDS 缩短时不是回收多余的内存空间而是free记录下多余的空间后续有变更直接使用free中记录的空间减少分配。
6 二进制安全。Redis可以存储一些二进制数据在C语言中字符串遇到\0会结束而 SDS中标志字符串结束的是len属性。
7I/O 多路复用。多路I/O复用技术可以让单个线程高效的处理多个连接请求而Redis使用用epoll作为I/O多路复用技术的实现。并且Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件不在网络I/O上浪费过多的时间。
8单线程模型。Redis是单线程模型的而单线程避免了CPU不必要的上下文切换和竞争锁的消耗。
9虚拟机内存机制。Redis自己构建了VM机制 不会像一般的系统会调用系统函数处理会浪费一定的时间去移动和请求。
10redis持久化。Redis是基于内存的非关系型K-V数据库既然它是基于内存的如果Redis服务器挂了数据就会丢失。为了避免数据丢失了Redis提供了持久化即把数据保存到磁盘。
一、二 缓存穿透、缓存击穿、缓存雪崩的概念
正常的缓存请求方式读取请求过来了然后去缓存区域查询有没有缓存有对应的值就直接命中返回。
如果去缓存区域查询没有就去查询数据库然后再把数据库的值更新到缓存再返回
一缓存穿透
读请求访问时候缓存和数据库都没有这个值但是每次还是会到数据库中先查询一下。没有该key 产生的原因 1业务设计的不合理大多数用户没有开守护但是每个请求都去查询缓存查询某个用户有没有守护。 2业务/运维/开发失误的操作比如缓存和数据库的数据都被删了 3黑客的非法请求攻击黑客故意捏造大量非法请求去读取不存在的业务 解决办法 1使用布隆过滤器快速判断数据是否存在。即一个查询请求过来时先通过布隆过滤器判断值是否存在存在才继续往下查。 2如果查询数据库为空可以给缓存设置个空值或者默认值。但是如果有写请求进来的话需要更新缓存以保证缓存一致性。同时最后给缓存设置适当的过期时间。常用 3如果是非法请求我们在API入口对参数进行校验过滤非法值。 二缓存击穿 指热点的key在某个时间点过期而恰好这个时候大量的并发请求来访问这个热点key然后大量请求到了数据库。单一key个过期 解决办法 1使用互斥锁。缓存失效时候不是立即去加载数据库的数据。而是先使用某些成功带成功返回的原子操作命令去操作再去加载数据库和设置缓存。否则就重试去获取缓存。 2永不过期。没有设置过期时间但是热点数据快要过期时异步线程去更新和设置过期时间。 三缓存雪崩
指缓存中数据大批量到过期时间而查询数据量巨大请求都直接访问数据库引起数据库压力过大甚至down机。大量key过期 解决办法 1通过均匀设置过期时间解决即让过期时间相对离散一点。如采用一个较大固定值一个较小的随机值5小时0到1800秒 2Redis 故障宕机也可能引起缓存雪奔。这就需要用Redis高可用集群 二、下载安装Redis操作步骤 Windows下载安装Redis的详细步骤_云边的快乐猫的博客-CSDN博客 如果你觉得本篇文章对你有所帮助的多多支持吧
点赞收藏评论抱拳了