Redis(2)--------redis回滚

本文探讨Redis事务不支持回滚的原因及其在实际应用中的考虑,介绍了Redis的主从模式和哨兵模式。此外,还讨论了在高并发场景下,缓存穿透、缓存雪崩和缓存击穿的问题,提出了解决方案,包括为非存在的数据设置缓存以及设置不同过期时间防止雪崩等。
摘要由CSDN通过智能技术生成

注:上一篇提问

Redis 的作者再事务功能的文档中解释,不支持事务回滚是因为这种复杂的功能和Redis追求的简单高效的设计主旨不符合,并且认为,Redis事务执行时,错误通常时编程错误造成的,这种错误通常只会出现在开发环境中,而很少会在实际的生产环境中出现,所以他认为没有必要为Redis开发事务回滚功能。 所以我们在讨论Redis事务回滚的时候,一定要区分发生错误的时候。

Redis(2)

Nosql

  1. ⼀般⼩项⽬mysql,⼤项⽬Oracle
  2. Nosql概念:泛指⾮关系型数据库,not only sql。
  3. ⽬的:解决⼤数据问题
  4. 主流nosql:redis,MongoDB,memcache…

redis

  1. 主从模式
    1. 作⽤1:备份数据
    2. 作⽤2:负载均衡,master节点可以进⾏读和写,slave节点只进⾏读操作。
  2. 主从同步:
    1. 在⼀台机器上启动多个redis实例,需要修改⼀下配置,保证多个redis实例出现共享数据。
    2. 修改master主服务器 redis.windows.conf
bind 127.0.0.1
port 6379
dbfilename dump.rdb
  1. 修改slave从服务器
bind 127.0.0.1
port 6380
dbfilename dump.rdb
slaveof 127.0.0.1 6379
  1. 哨兵模式:主从模式中,当master节点挂了以后,slave节点不能 主动选举⼀个master节点出来那么我就安排⼀个或多个sentinel来做 这件事,当sentinel发现master节点挂了以后,sentinel就会从slave中重新选举⼀个master。
  2. 由于Redis的数据都存放在内存中,如果没有配置持久化,redis 重启后数据就全丢失了,于是需要
    开启redis的持久化功能,将数据保存到磁盘上,当redis重启后, 可以从磁盘中恢复数据。
  3. redis持久化⽅法⼀,rdb快照
    1. 概念:在指定的时间间隔内将内存中的数据集快照写⼊磁盘。实际过程:redis server ⾸先
      fork ⼀个⼦进程,将数据集写⼊临时⽂件,写⼊成功后,替换之前的⽂件。

    2. 优点:1. 保存了 redis 在某个时间点上的数据集,适合⽂件备份和灾难恢复。2. 最⼤化redis
      性能,⽗进程fork⼦进程,⼦进程就会处理后⾯所有⼯作,⽗进程⽆须io操作。

    3. 缺点:1. 因为设置保存点,所以可能会五分钟保存⼀次,这样,可能会丢失⼏分钟数据。2.
      每次保存,都要fork⼀个⼦进程,⼦进程资源消耗⾮常⼤,可能会造成服务器在某毫秒内停
      ⽌处理客户端,⽩板。

    4. 特点:主服务器改变,⼦服务器什么都不要改变就可以保存数据。

    5. 步骤:

//1. 通常,快照持久化是默认开启的,会⾃动保存数据,启动时在⽂件夹⽣成dump.rdb⽂件。
//2. 也可以使⽤save⼿动设置频率
 save
//3. 通过bgsave的⽅法⼿动运⾏快照持久化。
 bgsave
//4. 数据恢复,将备份⽂件 (dump.rdb) 移动到 redis 安装⽬录并启动服务即可。
  1. redis持久化⽅法⼆,aof(append only file)⽇志追加
    1. 概念:redisClient发送写的命令,Redisserver同步写的命令,以⽇志的形式记录服务器所处
      理的每⼀个写、删除操作,查询操作不会记录,以⽂本的⽅式记录,可以打开⽂件看到详
      细的操作记录。
    2. 特点:1. append模式,所以,即使宕机也不会破坏⽇志⽂件中已存在内容。2. 更⾼的数据
      持久性,因为有3种同步策略,每秒同步,每修改同步和不同步。
  2. rdb和aof的结合,达到秒级持久化。
    1. appendonly yes,默认关闭,⼀开始就要配置好
    2. 每秒钟写⼊磁盘⼀次

springboot+redis

  1. 添加依赖:
    1. spring-boot-starter-data-redis2.1.0
  2. 项⽬结构:
    1. ⼯具类RedisUtils.java
    2. 封装Redi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值