08.Redis内存分配与优化

Redis中的数据都是存放到内存中的,这个跟redis的持久化无关哈(持久化只是相当于做备份)。然而每台服务器的内存都是有限的,那么如何分配内存给Redis使用呢?

A:首先要知道,redis默认是没有对可以使用多少内存做限制的,这样如果数据量大了的时候就会耗掉你
   服务器所有的内存。导致你都无法进行维护。
   
B:设置Redis可以使用的最大内存是通过maxmemory参数来设置,例如:maxmemory 10GB

C:生产中给redis分配最大内存的参照如下所示:

	## 对数据持久化的需求(不管你是用RDB还是AOF持久化哈)
	a:预判高峰期时可能占用的内存能达到10G,但低峰区可能就5G就够了,此时也要设置成10G;
	b:当进行RDB持久和AOF重写时会占用额外的物理内存;在进行同步数据时也会占用额外的内存;
	c:所以服务器的物理内存至少要大于20G的配置;
	
	## 对数据没有持久化的需求
	a:预判高峰期时可能占用的内存能达到10G,但低峰区可能就5G就够了,此时也要设置成10G;
    b:没有持久化的需求,服务器的内存至少也要大于10G,方便后面的对最大内存的在线扩大;

当分配给redis的最大使用内存被用尽了时候,Redis如何进行内存释放呢,这个就得根据redis内存的释放策略来决定了。

相关推荐