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内存的释放策略来决定了。

 

原文地址:https://www.cnblogs.com/chenliangc/p/12355500.html

时间: 2024-10-05 03:34:15

08.Redis内存分配与优化的相关文章

8.Redis内存分配

8.Redis内存分配8.1 内存消耗8.1.1 内存使用统计8.1.2 内存消耗划分8.1.3 子进程内存消耗8.2 内存管理8.2.1 设置内存上限8.2.2 动态调整内存上限8.2.3 内存回收策略8.3 内存优化8.3.1 redisObject对象8.3.2 缩减键值对象8.3.3 共享对象池8.3.4 字符串优化8.3.5 编码优化8.3.6 控制键的数量8.4 本章重点回顾 原文地址:https://www.cnblogs.com/BradMiller/p/10445925.htm

线上修改redis内存分配大小

VM:/data/bak # telnet 192.168.1.1 12403 Trying 192.168.1.1... Connected to 192.168.1.1. Escape character is '^]'. config get maxmemory       //查看 *2 $9 maxmemory $10 1000000000                 //当前为1G config set maxmemory 2000000000   //  设置为2G CTRL+

CentOS的Redis内存分配策略配置

安装了一主两从节点,启动之后发现有一个警告: 大概是说overcommit_memory设置成了0,在低内存环境下后台保存可能会失败,设置成1重启可解决. 然后,不太懂这个配置的含义,google一把: overcommit_memory参数说明:设置内存分配策略(可选,根据服务器的实际情况进行设置)/proc/sys/vm/overcommit_memory可选值:0.1.2.0, 表示内核将检查是否有足够的可用内存供应用进程使用:如果有足够的可用内存,内存申请允许:否则,内存申请失败,并把错

Weblogic admin server与manager server内存分配缺陷优化

1.admin server与manager server内存分配缺陷描述 Weblogic服务器一般会为每一个业务系统设计一个或多个域(domain),每一个域(domain)服务主体必须由Admin server和Manage Server两类Server组成,两类Server都需要占用一定的内存资源(人工配置),Manage Server负责运行业务,Admin Server则只负责管理Manage Server,只是在启动Weblogic和需要调整Weblogic配置时才使用,启动Web

redis内存分配管理

1.Redis的内存管理 1.与memcache不同,没有实现自己的内存池 2.在2.4.4以前,默认使用标准的内存分配函数(libc),可以选择tcmalloc 3.在2.4.4以后,jemalloc成为代码一部分 2.从实验的各个角度出发,发现对于大量数据的内存管理,使用jemolloc效果比较好,而对于少量数据,使用libc即可. 原文地址:https://www.cnblogs.com/ywjfx/p/10263120.html

Redis内存分配简单分析

Redis内存管理 1.Redis内存申请内存方式有三种: (1)系统自带的malloc/free方式进行申请/释放. (2)使用tcmalloc进行内存的申请/释放. (3)使用jemalloc进行内存申请/释放. /* Explicitly override malloc/free etc when using tcmalloc. */ #if defined(USE_TCMALLOC) #define malloc(size) tc_malloc(size) #define calloc(

Android上的内存分配策略优化

在Android上,其实自身有一套完善的内存管理机制.但由于我们深受Windows和塞班的毒害,每当看到手机剩余内存只有30m时,就觉得非常不爽,总是希望通过一些工具清理一下内存,而当Toast显示已经为你清理500m内存时,就会产生无比的快感.比如管家的小火箭发射,就是利用了这种用户心理. 所以,那些内存清理工具在windows上是很有必要的,但在Android上,实属多此一举.至于进程的优先级以及memorykiller的管理机制,系统是通过oom_adj来进行管理,这个可以通过之前小管的一

[转]内存分配malloc, new , heapalloc

这里比较的VC++编译的C++代码中的性能 我用的是VC6.0测试的 就不介绍这几个的用法了 我写了一段简单的测试代码 测试结果是: malloc:390new:391VirtualAlloc:454HeapAlloc:47 很明显的是HeapAlloc分配速度最快,malloc次之,new和malloc差不多,VirtualAlloc最慢了(以前小强跟我说这个最快) 我有跟踪了一下 new调用了这段代码 void * __cdecl _nh_malloc ( size_t nSize, int

NoSQL之Redis安装配置与优化(理论+实践)

关系数据库与非关系型数据库 关系型数据库 一个结构化的数据库,创建在关系模型基础,上,-般面向于记录 包括Oracle.MySQL. SQL Server.Microsoft Access.DB2等 非关系型数据库 除了主流的关系型数据库以外的数据库, 都认为是非关系型的 包括Redis.MongBD. Hbase. CouhDB等 非关系型数据库产生背景 High performance--对数据库高并发读写需求 Huge Storage--对海量数据高效存储与访问需求 High Scalab