关于redis:学习总结之Redis持久化和内存优化策略

7次阅读

共计 1079 个字符,预计需要花费 3 分钟才能阅读完成。

概述

Redis 属于 NoSql,即非关系性数据库,采纳 key-value 的模式存值。采纳 Redis 作为缓存,能够缓解数据库的压力。因为 Redis 的运行环境在内存中,同时应用 c 语言编写,所以取数据的速度比拟快。
同时因为在内存环境中,所以要思考两个问题。(1)内存环境个别断电即擦除,所以须要长久化策略。(2)Redis 的存储数据的能力是无限的,内存数据满了,应该如何解决。


Redis 的长久化策略

1.RDB 模式

RDB 是 Redis 默认的长久化策略。应用 Redis,会主动生成一个 RDB 文件。RDB 文件记录的是数据快照,占用空间小,长久化效率高。

然而 Redis 是单线程的,记录快照会阻塞 Redis 的应用,所以它的默认设置是,900 秒内,1 次扭转,进行快照。300 秒内,10 次扭转,进行快照。60 秒内,10000 次扭转,进行快照。
这就有失落数据的可能性。

2.AOF 模式

为了应答数据失落的可能性,Redis 推出 AOF 模式,它默认是敞开的。它记录的是用户层操作行为,能够确保数据不失落。
然而因为记录的是操作行为,文件占用内存大,并且复原数据的速度慢。

3. 模式抉择

1. 如果对数据完整性要求较高,应用 AOF 模式
2. 如果谋求效率,容许大量失落数据,应用 RDB 模式
3. 如果想两者兼顾能够采纳集群的形式,主机和从机采纳不同的模式。


Redis 内存优化策略

1. 默认策略 noeviction


Redis 内存满了之后,默认是不进行任何解决。失常状况下都会批改 redis.conf, 批改默认策略。

2.LRU(Least Recently Used)

LRU 是最近起码应用,开启之后,当内存满了,会将最近起码应用的数据删除。

Redis 外面有两种可选策略,一种是针对快到期的数据,进行 LRU 算法(volatile-lru),一种是针对所有数据进行 LRU 算法(allkeys-lru)

3.LFU(Least Frequently Used)

LFU 是最近起码应用。它思考到有已经特地热门的数据,然而前期很少有人拜访的状况,所以是计数寄存器定时右移一位,呈指数递加。

Redis 外面有两种可选策略,一种是针对快到期的数据,进行 LFU 算法(volatile-lfu),一种是针对所有数据进行 LFU 算法(allkeys-lfu)

4.Random

Random 是随机删除数据,这就有可能带来缓存击穿或者穿透问题,所以失常状况下是不会应用这种算法,和下面两种一样,Redis 也提供了两种可选策略。一种快到期,一种针对所有数据

5.TTL

TTL 是将行将超时的数据删除,所以是只针对设定了超时工夫的数据。Redis 也只提供了一种策略。

正文完
 0