redis的内存分配问题_jack-zhu的博客-程序员宝宝

技术标签: redis内存管理  如何设置redis的内存大小  redis内存大小  redis内存分配问题  redis  

                                                              redis的内存分配问题

      redis是个对内存依赖性很强的NoSql数据库,在内存足够的情况下性能出色如果只有一台机子去部署redis,一定要特别小心。

比如我有台24G的服务器,理所当然我会将大量内存分配给redis。比如20G的内存, 问题来了, 当你对redis插入数据后,redis会异步将数据dump到硬盘中想起来很完美,问题是它会fork一个进程,并占去同样大小的内存,你需要的内存瞬间便为 20G+20G =40G,这时内存超过了物理内存的限制,马上会启动虚拟内存,我的机子上是8G虚拟内存,重点是这个是linux的虚拟内存,并不是redis自己的虚拟内存。linux的虚拟内存 page很大,IO剧增,dump速度会非常慢,整个服务器的性能降到冰点,服务请求都会堵塞。最严重到机子坏掉。对于单台机子最好是降低redis虚拟内存设置,page可以根据配置修改,这个虚拟内存比linux的虚拟内存好很多,因为page小很多。如果你的redis既有读又有写,那么最好不要让redis占去大半的内存。可以设置它的虚拟内存到8G,这还要根据你的key值大小的衡量,因为key是必须在内存中的,这样一来就算启用了虚拟内存,redis占去的实际内存也会超出设想。就是说必须给redis留出他本身需要一倍以上的内存,平时在不插入数据的时候,内存空着不用,浪费。

       此外官方文档中建议对key小,value很大的数据设置虚拟内存。

       另外master/slave不是很成熟,目前只支持主从,Redis在master是非阻塞模式,也就是说在slave执行数据同步的时候,master是可以接受客户端的请求的,并不影响同步数据的一致性,然而在slave端是阻塞模式的,slave在同步master数据时,并不能够响应客户端的查询可以根据master/slave的特点,masterdump,它只负责写数据,让slavedump。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012875880/article/details/16806143

智能推荐

前端基础学习之h5-dom操作、新增api(全屏操作、video多媒体、history、web存储等)_Endless Daydream233的博客-程序员宝宝

1.获取dom的方式H5 api有效选择器:在css当中能使用的都是有效选择器document.getElementsByClassName (‘class’);通过类名获取元素,以伪数组形式存在。document.querySelector(‘selector’);通过CSS选择器获取元素,符合匹配条件的第1个元素。document.querySelectorAll(‘selector’);通过CSS选择器获取元素,以伪数组形式存在。2.类操作H5 api 基于对象的classLis

(转载)企业级加密文件系统 eCryptfs 详解_NewbieRock的博客-程序员宝宝_ecryptfs tpm 分区

企业级加密文件系统 eCryptfs 详解近年来,保护个人敏感数据成为人们关注的热点问题,使用加密技术成为一种比较成功的保护方法。eCryptfs 是一个功能强大的企业级加密文件系统,通过堆叠在其它文件系统之上(如 Ext2, Ext3, ReiserFS, JFS 等),为应用程序提供透明、动态、高效和安全的加密功能。本文先介绍加密文件系统的背景,然后介绍 eCryptfs 的使用方法,最后阐述

Java8 EnumMap 源码分析_留兰香丶的博客-程序员宝宝

一、EnumMap 概述EnumMap 是一个用于存储 key 为枚举类型的 map,底层使用数组实现(K,V 双数组)。下面是其继承结构:public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> implements java.io.Serializable, Clon...

ubuntu安装串口助手cutecom_莫马达的博客-程序员宝宝_ubuntu安装串口助手

Serialport Assistantsudo apt-get install cutecomsudo usermod -a -G dialout user_name

Dubbox&&zookeeper基础_荒天帝灬的博客-程序员宝宝_dubbox zookeeper

目录Dubbox的原理Dubbo相关的jar包zookeeper的使用zookeeper的安装zookeeper的启动和结束调用服务例子写一个接口服务提供方配置服务调用方的配置远程注入属性扫描外部的bean管理中心分布式dubbo配置端口配置前言Dubbox是一个分布式服务框架,相等于Dubbox的升级版主要功能是进行远程的服务调...

mac os python - mysql 安装_M好爸爸的博客-程序员宝宝

在安装好MySql 和django 后 , 如果 在安装python - mysqldb 出现以下问题的话Downloading http://cheeseshop.python.org/packages/2.5/s/setuptools/setuptools-0.6c5-py2.5.eggsh: line 1: mysql_config: command not foundTra

随便推点

LockSupport学习_小健健健的博客-程序员宝宝

文章目录blockerThread.interrupt()Object.wait()/notify()常用方法public static void park(Object blocker); // 暂停当前线程public static void parkNanos(Object blocker, long nanos); // 暂停当前线程,不过有超时时间的限制public static void parkUntil(Object blocker, long deadline); // 暂停当前线

Eclipse 中使用Hibernate 反向工程_adalu1986的博客-程序员宝宝

1.生成Hibernate配置文件(.cfg.xml) 2.生成反向工程文件(.reveng.xml) 3.生成持久化类和映射文件(.java,.xml) 参考文章:http://blog.csdn.net/b671900/article/details/39156065

windows 64位 部署 Redis 3.2.100_weixin_41715295的博客-程序员宝宝_redis.3.2.100

下载地址:https://github.com/MSOpenTech/redis/releases。Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。用记事本或者Notepad++打开redis.windows.conf并找到“# requirepass fooba...

前端web通过flask操作数据库-增删改查_weixin_30376323的博客-程序员宝宝

后端python代码:#coding:utf8from flask import Flask,request,render_templateimport pymysql as mysqlimport jsoncon = mysql.connect(user='xiaofan',password='123456',db="t1")con.autocommit(...

我的前28年!_运维中文社区的博客-程序员宝宝

阅读本文大概需要 12分钟。现在的社会,现在的人。都是喜欢虚假的,会做的不如会说的,会说的不如会混的。真情可贵,用心陪罪。虚伪面对,从容领会。我是永远都学不会。。。首先...

推荐文章

热门文章

相关标签