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

网站开发后端书籍我的百度账号

网站开发后端书籍,我的百度账号,深圳网站建设公司服务流程,石景山网站制作建设公司目录 Redis概述 应用场景 Redis的线程模式 数据持久化 1.Rdb(Redis DataBase) 2.Aof(Append Only File) mysql与redis保持数据一致 redis事务 主从复制(Redis集群) 哨兵模式 key过期策略 缓存穿透、击穿、…

目录

Redis概述

应用场景

Redis的线程模式

数据持久化

1.Rdb(Redis DataBase)

2.Aof(Append Only File)

mysql与redis保持数据一致

redis事务

主从复制(Redis集群)

哨兵模式

key过期策略

缓存穿透、击穿、雪崩

1.缓存穿透:缓存中没有,在mysql中也没有

2.缓存击穿:数据在数据库中存在,某个热点的key(秒杀、抢购)但是在Redis中过期了,此时有大量请求,查询mysql

3.缓存雪崩:访问量很大,大量key失效


Redis概述

非关系型数据库,以键值对的形式存储,读写速度快,数据持久化,支持多类型数据。

应用场景

1.缓存:

        访问量大的(秒杀、点赞)

        修改少的

        存储验证码(定时删除)

2.计数器

3.排行榜(zset)

4.去重(set)

5.消息队列(list) 排号

6.分布式锁

Redis的线程模式

在6.0之前是客户端连接和读写数据上是单线程模式

在6.0之后在客户端连接上是多线程模式,但在数据读写上是单线程的。

为什么使用单线程速度还很快?

1.基于内存存储

2.底层存储数据结构为hash表o(1)

3.单线程模式避免了线程的切换,性能消耗少,并且单线程避免了死锁的发生。

数据持久化

因为数据存储在内存,存在数据丢失,以便在重启后恢复数据。 

1.Rdb(Redis DataBase)

在指定的时间间隔下,将数据以二进制的形式写入磁盘,默认为保存在 dump.rdb,当符合一定条件时 Redis 会自动将内存中的数据进行快照并持久化到硬盘。

触发快照时期

save:用来配置触发 Redis 的 RDB 持久化条件,也就是什么时候将内存中的数据保存到硬盘。比如"save m n"。表示 m 秒内数据集存在 n 次 修改时,自动触发 bgsave。

save 900 1 :表示 900 秒钟内至少 1 个键被更改则进行快照。

save 300 10 :表示 300 秒内至少 10 个键被更改则进行快照。

save 60 10000 :表示 60 秒内至少 10000 个键被更改则进行快照。

 若不持久化,可以注释掉save

2.Aof(Append Only File

以日志的形式进行存储,将 Redis 执行过的所有指令记录下来(读操作不记录)。

appendon1y no #默认是不开启    yes 开启

appendfilename  appendonly.aof #默认的文件名是 appendonly.aof,可以通过 appendfilename 参数修改。

AOF 同步机制 

appendfsync always   #每次修改都会 sync。消耗性能

appendfsync everysec #每秒执行一次 sync,可能会丢失这 1s 的数据(默认)

重启 redis 生效

mysql与redis保持数据一致

将mysql中的数据修改后,redis中的数据需要与mysql中的数据保持一致

解决方式:

1.先更新mysql中的数据,再更新redis中的数据,如果redis数据更新失败,也会导致数据不一致。 

2.先删除redis中的数据,再更新mysql 中的数据,再次查询的时候将数据添加到缓存中,但是当redis中的数据删除后,mysql正进行更新,线程1进行查询,右将mysql中的老数据查询到了redis中。

3.延迟双删:先将redis中的数据进行删除,如果查询数据时,将mysql中的数据又存到redis中,如果没有查询,则mysql中的数据进行修改后,再将数据存放在redis中。

redis事务

是为了保证一组命令作为整体来连续执行,其他客户端不会打断执行。

Multi:开启事务

Exec:执行事务

    java代码实现事务控制
    redisTemplate.multi();//开启redis事务
         //命令1
  
         //命令2
 
         //命令3
    redisTemplate.exec();//提交redis事务 

主从复制(Redis集群)

将一台 Redis 服务器的数据,复制到其他的 Redis 服务器前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。实现数据的备份,即使其中一台机器宕机,其他机器还可以正常运行,保证数据的完整。
写入命令都直接发送到主机执行,主机将数据会自动备份到从机,实现读写分离,分担redis服务的压力。

哨兵模式

在redis的集群中可以配置哨兵(进程),
   哨兵定期会给每个redis服务发送命令,如果能接收到响应,说明redis服务正常
   否则redis服务故障,
   重点是监测主机,一旦主机宕机,哨兵机制会从从机中选举一个作为主机。

key过期策略

时间到了,到底是key用不了了还是直接删除

1.惰性删除:当过期后,标记为过期的状态,当下次使用时,进行删除

2.定期删除:在定时的时间,进行扫描过期的key,然后删除

缓存穿透、击穿、雪崩

1.缓存穿透:缓存中没有,在mysql中也没有

解决方式:(id= -1)在Redis中设置key,值为null

2.缓存击穿:数据在数据库中存在,某个热点的key(秒杀、抢购)但是在Redis中过期了,此时有大量请求,查询mysql

解决方式

1.热点key设置过期时间加长(避免在访问量大的时候过期)

2.在mysql查询时加锁:查一次,将结果存在Redis中,就不用在mysql中查询 了。

3.缓存雪崩:访问量很大,大量key失效

解决方式

1.随机设置key失效时间

2.集群

3.不设置失效时间

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

http://www.tj-hxxt.cn/news/19759.html

相关文章:

  • 做问卷用哪个网站最新国际要闻
  • wordpress微信文章采集天津网站建设优化
  • 做网站的费用记哪个科目品牌策划与推广方案
  • 有做h的小说网站百度营销app
  • 博客网站wordpress市场seo是什么意思
  • 京东商城网站建设目的西安seo高手
  • 个人网站制作步骤seo手机关键词网址
  • 做抽奖网站用什么cms教你免费申请个人网站
  • 无锡企业网站的建设全国网站排名
  • 找个做游戏的视频网站长春网站优化页面
  • 网站怎么不要钱自己做网站seo顾问
  • 西安市做网站公司旺道智能seo系统
  • 知道ip域名如何进入网站各大网站
  • 一般用网站服务器制作网站建设入门
  • 给政府做网站我的百度购物订单
  • 敖降网站建设发外链的论坛
  • 建设公司网站湖南seo优化按天付费
  • 宜春网站建设推广上海牛巨微网络科技有限公司
  • 深圳快速网站制作服百度快照是干什么的
  • 网站排名恢复做百度seo
  • 网站建设是设计师吗佛山seo优化外包
  • 华为网站建设方案模板下载太原百度关键词优化
  • 苏州工业园区建设局网站百度服务
  • 长宁网站建设公司三只松鼠网络营销方案策划书
  • 每个企业都要做网站吗百度联盟一天多少收入
  • 做游戏网站主页的素材放心网站推广优化咨询
  • 在中国做采购在哪个网站找产品网络建站工作室
  • 网站管理员登录seo优化网站推广全域营销获客公司
  • 网站索引量突然下降市场营销策略包括哪些策略
  • 南京网站公司四川seo多少钱