一、redis的使用场景
1、热点数据的缓存: 减少对数据库的访问频率和减轻数据库的压力。
2. 限时业务的运用: 秒杀 存储登录者用户信息 存储短信验证码
3. 计数器相关问题: 点赞数 收藏数 播放量
4. 排行榜相关问题: sort set
5. 分布式锁:
二、redis的持久化
持久化:把内存中的数据库保存到磁盘上,防止数据的丢失。
redis支持的持久化方式两种:
(1)RDB:快照 其实就是把数据以快照的形式保存在磁盘上,什么是快照呢,你可以理解成把当前时刻的数据拍成一张照片保存下来。
(2)AOF :日志追加 记录服务器接受的每个写入操作,当服务器启动时再次加载该日志,会把日志中的命令重新执行一遍
2.1 RDB快照持久化方式
2.1.1 RDB的触发方式
1.手动触发
【1】save堵塞型保存
[2]bgsave非堵塞型保存
2.自动触发
默认保存的文件名: dump.rdb 可以在redis.conf名称
save
该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止。具体流程如下 :
执行完成时候如果存在老的RDB文件,就把新的替代掉旧的。我们的客户端可能都是几万或者是几十万,这种方式显然不可取。
bgsave
执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。具体流程如下:
自动触发RDB
我们需要修改redis的配置文件来实现自动触发RDB。
我们可以给这些数据改的小一些 比如改成 save 5 3 (5秒内变化3次)
2.1.2 AOF日志追加持久化方式
我们可以查看它的文件:appendonly.aof.1.incr.aof
aof模式会把每个写操作,记录到一个日志文件,当redis启动时会把该日志中每个指令重新执行一遍。 数据恢复速度慢。数据完整性高。
如果两则都使用,恢复数据时按照aof恢复。因为redis认为它的完整性比较好。大多数使用rdb.