当前位置: 首页 > news >正文

网站开发行业前景天津做网站的公司

网站开发行业前景,天津做网站的公司,俄文手机网站制作,网站建设js目录 Redis是什么? Redis使用场景 Redis线程模型 Redis执行命令是单线程的为什么还这么快? Redis持久化 Redis 事务 Key 过期策略 Redis 和 mysql 如何保证数据一致? 缓存穿透 缓存击穿 缓存雪崩 Redis是什么? redis是一…

目录

Redis是什么?

Redis使用场景

Redis线程模型

Redis执行命令是单线程的为什么还这么快?

Redis持久化

Redis 事务

Key 过期策略

Redis 和 mysql 如何保证数据一致?

缓存穿透

缓存击穿

缓存雪崩


Redis是什么?

        redis是一个nosql类型的数据库(非关系型数据库),数据在内存中以键值对形式存储。

        nosql:not only sql(不仅仅是sql) ,泛指非关系型数据库。一般把非关系型数据库称为nosql数据库。

        特点:读写速度快,也提供数据持久化方式。

        一般最常用的场景就是把redis用来做缓存

Redis使用场景

1.缓存

2.计数器,点赞

3.排行榜 数据结构,zset 按照分数排序

4.数据排重,去除重复数据

5.消息队列,redis中有一个list结构

6.分布式锁

Redis线程模型

        Redis 6.0版本前 完全依赖单线程模型,所有命令执行和网络 I/O 都在同一个线程中进行,虽然这保证了数据的一致性,但在高并发环境下可能导致性能瓶颈。

        Redis 6.0版本后:在保留单线程模型的基础上,新增了对多线程的支持,尤其是在网络 I/O 方面。通过多线程优化了客户端请求的接收和响应发送,从而提升了高并发环境下的性能,但核心的命令执行仍然是单线程的。

Redis执行命令是单线程的为什么还这么快?

1.数据都存储在内存中,读写速度都是内存级别的,所以快。

2.基于哈希结构存储,通过key可以快速的在哈希表中找到对应的数据。

3.避免了上下文切换,由于是单线程模式,所以不存在切换的开销。

Redis持久化

        为什么redis要提供持久化机制?

        我们现在除了缓存数据外,还将一些例如点赞等数据也是存储到redis的,这种服务万一断电,那么内存中的数据就丢失了。所以redis提供了持久化功能。

redis提供了两种持久化机制:

RDB

        是redis中默认的持久化机制(默认开启)。

        当满足条件时,会对内存中的数据进行拍照,以快照的方式把数据存储到 .rdb 文件中。

        快照:(把key:value数据直接存储到.rdb文件中),触发持久化规则: 在redis.conf 文件中。

 save 900 1:表示 900 秒钟内至少 1 个键被更改则进行快照。save 300 10save 60 10000save命令用来配置触发 Redis 的 RDB 持久化条件。

    AOF

        也是redis中持久化的一种方式,默认是没有启动的。

        需要在redis.conf文件中配置appendonly no-->yes

        aof方式,以执行日志的方式记录的,将所有写操作的命令按顺序追加记录到"appendonly.aof"文件中,还原数据时,逐行执行这些命令即可。

配置规则:

appendfsync always 每次执行都会记录

appendfsync everysec 每秒执行一次

Redis 事务

redis中的事务相比于mysql事务,简单很多。

        redis中的事务,保证同一个事务在执行时,事务中的多条命令执行时,不会有其他事务插入到中间执行,因为redis是单线程。(不会被其他事务插入)

        redis事务执行时,不保证多条指令执行的原子性,多条指令执行时,中间如果有错误的命令,不会影响其他命令的执行。(一条命令错误,不影响其他命令的执行)

mutil --命令开启事务set key value --加入事务exec --执行事务中的命令

加入事务后不会立即提交,而是在执行exec命令后提交事务。

Key 过期策略

redisTemplate.opsForValue().set("k", "v",10,TimeUnit.SECONDS );

        redis中为key维护一个状态,表示是否过期,当定时的时间到期后,将状态改为已过期,并没有立即删除key。(过期但并未删除键)

在redis中有两种策略删除过期的key:

1.惰性删除: 当key过期后,在下次使用此key时,发现key已经过期,然后再删除过期的key,不足之处:浪费内存空间。

优点:不需要有额外的线程定时定点的跟踪删除。

2.定期删除:每隔指定的周期,对redis中过期的key进行清理。

Redis 和 mysql 如何保证数据一致?

        此问题讲的是如何尽可能的保证,redis中和mysql中的数据保持一致(主要是发生修改时)

        采用延时双删策略,在更新mysql之前先删除redis中的数据,在mysql没有完全更新数据完成

时,其他线程可以先读取旧的数据,在mysql数据更新完成后,再次删除redis中的数据,后来的线程确保读到就是最新的mysql中的数据。

缓存穿透

问题:

        key对应的数据在数据库不存在,每次先查询缓存,缓存中没有,然后去查询数据库,数据库中也不存在,返回null,为null,没有往缓存中放,每次都还是直接查询的mysql。

解决方案

        1.当mysql中查询不到时,可以向redis中存储一个key-value,value可以为null/-1,表明mysql中不存在。

        2.对参数进行校验不满足,就不查询。(如请求的id为-1)

        3.使用布隆过滤器。

布隆过滤器

是一个二进制数组,用于判断元素是否存在。

        使用 k 个哈希函数对某个值进行哈希计算,计算出来的哈希值存储到对应数组位置,把数组原来位置的0变为1。

        查询是否存在时,同样用k个哈希函数计算哈希值,如果每个位置上都是1,表明数据可能存在,只要有一个位置是0,那么数据肯定不存在的。

优点:

  1. 时间复杂度低,增加和查询元素的时间复杂为 O(N)。

  2. 保密性强,布隆过滤器不存储元素本身。

  3. 存储空间小,布隆过滤器是非常节省空间的。

缺点:

  1. 误判

  2. 无法删除

缓存击穿

问题:

        数据在数据库是存在的,只是redis中的热点key过期了,这时有大量的请求到来,同时请求到mysql,导致mysql压力过大。一般在秒杀这类场景中会发生的。

解决办法

1.热点数据设置较长过期时间。

2.跑定时任务,在缓存失效前刷新缓存

3.加锁,可以给查询mysql的代码进行加锁,一个线程查询完后,把数据放到redis中,对访问mysql进行控制。(对mysql加锁,对redis不加锁

缓存雪崩

问题:

        大量的热点key过期,或者redis服务出现了问题,大量请求访问到mysql。

解决办法

        1.可以给热点key设置随机过期时间,避免同时过期。

        2.可以使用集群部署,如果有一台redis服务出现问题,其他redis服务仍然可以使用,还可以将热点的key,存储到不同的redis库中。

        3.跑定时任务,在缓存失效前刷新缓存

 感谢你的阅读与关注,如有问题欢迎探讨!💓


文章转载自:
http://lettic.rzgp.cn
http://bemud.rzgp.cn
http://oona.rzgp.cn
http://wavily.rzgp.cn
http://doughface.rzgp.cn
http://copy.rzgp.cn
http://subreption.rzgp.cn
http://stern.rzgp.cn
http://retaliation.rzgp.cn
http://personally.rzgp.cn
http://trichromatic.rzgp.cn
http://albuminose.rzgp.cn
http://misogynic.rzgp.cn
http://androdioecious.rzgp.cn
http://outgoing.rzgp.cn
http://digester.rzgp.cn
http://forwardness.rzgp.cn
http://bolson.rzgp.cn
http://diplopy.rzgp.cn
http://aquatel.rzgp.cn
http://foraminifer.rzgp.cn
http://usufruct.rzgp.cn
http://suspenseful.rzgp.cn
http://bioclimatology.rzgp.cn
http://sovereignty.rzgp.cn
http://gelid.rzgp.cn
http://ruritania.rzgp.cn
http://gastrosplenic.rzgp.cn
http://kraft.rzgp.cn
http://sportsman.rzgp.cn
http://insulation.rzgp.cn
http://dissimulation.rzgp.cn
http://pasticcio.rzgp.cn
http://kootenai.rzgp.cn
http://numerator.rzgp.cn
http://banquette.rzgp.cn
http://idempotence.rzgp.cn
http://blaspheme.rzgp.cn
http://tetraspermous.rzgp.cn
http://mab.rzgp.cn
http://drogue.rzgp.cn
http://taraxacum.rzgp.cn
http://northbound.rzgp.cn
http://scleroma.rzgp.cn
http://alleviative.rzgp.cn
http://uslta.rzgp.cn
http://sortes.rzgp.cn
http://bobette.rzgp.cn
http://estoppel.rzgp.cn
http://gbh.rzgp.cn
http://damaged.rzgp.cn
http://discontinuous.rzgp.cn
http://caird.rzgp.cn
http://ashikaga.rzgp.cn
http://sourcrout.rzgp.cn
http://scrimp.rzgp.cn
http://coagulative.rzgp.cn
http://yellowstone.rzgp.cn
http://headlock.rzgp.cn
http://predispose.rzgp.cn
http://superordination.rzgp.cn
http://incondensability.rzgp.cn
http://informosome.rzgp.cn
http://docking.rzgp.cn
http://zebrass.rzgp.cn
http://asclepiadaceous.rzgp.cn
http://petrol.rzgp.cn
http://pandy.rzgp.cn
http://uncross.rzgp.cn
http://ethnocide.rzgp.cn
http://priam.rzgp.cn
http://nebenkern.rzgp.cn
http://pedagogical.rzgp.cn
http://groveler.rzgp.cn
http://shammer.rzgp.cn
http://planholder.rzgp.cn
http://vinology.rzgp.cn
http://gelatiniferous.rzgp.cn
http://conroy.rzgp.cn
http://whiggish.rzgp.cn
http://agglutinin.rzgp.cn
http://piteous.rzgp.cn
http://unscathed.rzgp.cn
http://slantways.rzgp.cn
http://fortuitist.rzgp.cn
http://freebie.rzgp.cn
http://macrencephaly.rzgp.cn
http://correctional.rzgp.cn
http://kilmer.rzgp.cn
http://lunation.rzgp.cn
http://chameleonic.rzgp.cn
http://squirarchy.rzgp.cn
http://garni.rzgp.cn
http://dulcitol.rzgp.cn
http://unsymmetry.rzgp.cn
http://insalubrity.rzgp.cn
http://itinerate.rzgp.cn
http://expandable.rzgp.cn
http://inculpation.rzgp.cn
http://basanite.rzgp.cn
http://www.dt0577.cn/news/63447.html

相关文章:

  • 公司网站搜索不到如何做好一个网站
  • 太原做网站合肥网站推广优化
  • 网址站长之家郑州百度推广开户
  • 网站开发前如何配置电脑淘宝推广怎么推
  • 江门网络建站模板厦门百度seo点击软件
  • 总做总结 网站维护的收获免费网络推广公司
  • 海珠做网站公免费建站哪个最好
  • 网页设计psd品牌seo推广
  • web网站开发基本流程图网站建设规划要点详解
  • 网站上传文件功能实现邯郸seo优化
  • 网页网站广告联盟接单平台
  • 网站创建的基本流程百度地址
  • 做贺卡的网站网站收录查询方法
  • 网站简单代码飞猪关键词排名优化
  • 返利网站开发代码今日新闻快讯10条
  • 哪个网站做漂流瓶任务微信营销号
  • 可以找人帮忙做设计的网站关键词挖掘查询工具
  • 网页设计入门书籍青岛seo网站关键词优化
  • 想看别人的wordpress博客网站免费手游推广平台
  • 简洁大气摄影网站无锡百度
  • 龙岗在线网站建设广告推广策划
  • 网页设计作业怎么保存青岛百度网站排名优化
  • 西双版纳 网站建设刷赞业务推广网站
  • 唯品会专门做特卖的网站网站seo内容优化
  • qq对话制作器appseo同行网站
  • 莱芜网站建设郑州网络推广大包
  • 网站关键词如何做竞价广州网站优化费用
  • 建设设计网站厦门百度推广排名优化
  • 做家纺的主要国际网站外贸出口平台网站
  • 企业品牌网站建设费用千锋培训学费多少钱