崔文远 Troy Cui 老崔先生的上海生活、技术博客

Redis 32位异常:MISCONF Redis is configured to save RDB snapshots

Windows 32位的Redis一直有些问题,前一阵经常重新启动服务,今天终于抓到一个报错信息:“MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk Redis被配置为保存数据库快照,但它目前不能持久化到硬盘。用来修改集合数据的命令不能用。请查看Redis日志的详细错误信息。“,网上查了一下,使用了”通过redis-cli连接到服务器后执行命令:config set stop-writes-on-bgsave-error no“,但接着发现有篇文章介绍这样做不好,其实是掩耳盗铃的做法,这只是让程序忽略了这个异常,使得程序能够继续往下运行,但实际上数据还是会存储到硬盘失败!,说是有个参数可以解决:”修改vm.overcommit_memory=1“,但我死活没找到在哪里修改,先记录下来,监控一下运行的情况再说。


不光是32位的Redis,64位的版本也是。有不少人也遇到类似的问题,并且给出了很好的分析(详见:http://www.linuxidc.com/Linux/2012-07/66079.htm),简单地说:Redis在保存数据到硬盘时为了避免主进程假死,需要Fork一份主进程,然后在Fork进程内完成数据保存到硬盘的操作,如果主进程使用了4GB的内存,Fork子进程的时候需要额外的4GB,此时内存就不够了,Fork失败,进而数据保存硬盘也失败了。

Tags: Redis

发布: cuiwenyuan 分类: Web技术 评论: 0 浏览: 53

Redis 3.2.100 Windows 32位下载

 因为公司的老服务器用的是Windows 2008 32位,不得不安装Redis32位。可在微软的Github上有64位的MSI安装包,前天开始在不同的群里寻找32位的安装包,一直没找到,索性自己下载源码,安装VS2013 SP5,编译了一份Windows32位的服务程序,同时加上了安装和卸载服务的bat,直接解压缩到服务器的目录,分配NETWORK SERVICE权限,运行service-install.bat即可完成安装。

More...

Tags: Redis

发布: cuiwenyuan 分类: Web技术 评论: 0 浏览: 90