-
-
- Redis持久化工作原理
-
说明:按照配置的时间,定期将内存数据保存到redis中的持久化文件中.
当redis服务器宕机之后重启时,首先读取指定的持久化文件,恢复内存数据,方便用户使用.
-
-
- RDB模式
-
概念:
RDB模式是Redis中默认的持久化策略.保存的是redis的内存快照.
占用的资源少.持久化效率最高的.
RDB特点:
1.RDB模式能够定期持久化,但是有丢失数据的风险.
2.Redis中默认的持久化策略
3.RDB模式做内存的快照. 效率高
4.占用磁盘空间较小.
-
-
- RDB模式的配置
-
- 修改持久化文件名称
2.持久化文件目录设定
3.持久化策略
save 900 1 用户在900秒内做1次set操作时持久化1次
save 300 10 用户在300秒内做10次set草时持久化1次
save 60 10000 60秒内做10000次set 持久化一次
使用save持久化化时,如果执行持久化操作,则程序陷入阻塞.用户不能执行set.
-
-
- AOF模式
-
特点:
- AOF模式可以实现数据的实时持久化.
- 记录的是用户的操作过程.
- 持久化文件会比较大.
- 持久化效率低.
- AOF模式默认是关闭的
- AOF模式持久化是异步的.
-
- AOF模式持久化策略
-
1.开启AOF模式
- 修改持久化文件名称
- 持久化策略:
# appendfsync always 只要用户执行”更新”命令则持久化一次
appendfsync everysec 每秒持久化一次.
# appendfsync no 由默认的操作系统决定什么时候持久化.
-
-
- Redis缓存策略说明
-
- 如果有并发查询时.如果缓存服务器宕机/缓存失效.则查询数据库.可能导致数据库宕机. 俗称缓存雪崩.
- 如果用户,高并发查询一个不存在的数据时.后台数据库有宕机的风险.
俗称:缓存穿透
限流 直至封杀IP地址. IP模拟器
- 如果高并发条件下.当某一个热点的key,超时或者失效时.数据库有宕机的风险.
俗称:缓存击穿
-
- Redis内存机制
- 业务需求
- Redis内存机制
Redis中的数据都保存内存中.内存中的数据如果一味的新增,不删除则内存数据很快存满.导致新的数据保存错误.
需求:用户每次都能存储数据,但是内存大小是可控的.要求动态维护内存大小.
-
-
- Redis中内存策略
- LRU算法:
- Redis中内存策略
-
内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU,操作系统会根据哪些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。
-
-
-
- LFU算法
-
-
LFU(least frequently used (LFU) page-replacement algorithm)。即最不经常使用页置换算法,要求在页置换时置换引用计数最小的页,因为经常使用的页应该有一个较大的引用次数。但是有些页在开始时使用次数很多,但以后就不再使用,这类页将会长时间留在内存中,因此可以将引用计数寄存器定时右移一位,形成指数衰减的平均使用次数。
LFU:根据数据使用的次数多少删除数据.
-
-
-
- 内存优化策略
-
-
- volatile-lru
设定超时时间的数据采用LRU算法删除数据.
- allkeys-lru
所有的数据采用LRU算法删除数据
- volatile-lfu
设定了超时时间的数据采用LFU删除数据
- allkeys-lfu
所有的数据采用LFU算法删除数据
- volatile-random
设定了超时时间的随机删除
- allkeys-random
所有key随机删除
- volatile-ttl
设定了超时时间的数据排序.将马上要超时的数据提前删除.
- Noeviction
不删除数据.如果内存数据存满则报错返回. 该策略是默认策略