转载请注明文章出处: https://tlanyan.me/redis-on-w...
Redis
是一个高性能的内存型NoSQL数据库,是服务端开发中经常使用的软件。Redis
官方支持*nix、BSD等系统,没有提供对Windows平台的支持。Windows平台上的Redis由微软开发,但微软目前暂停了对其的支持和维护。微软Redis
的Github仓库是 MicrosoftArchive/redis,最后发布的版本是两年前的3.2.100
。git
在网络上搜索“redis windows”,无论新旧博文仍是教程,都指向了3.2.100
。软件老旧没问题,好用就行。但实践证实在大数据量下(超过几千个key),Windows上的3.2.100很快崩溃掉,出现以下错误提示:github
此时不关闭窗口,redis
依然能提供服务。当存放的数据量增加到几万,redis
会弹出第二个崩溃窗口,数据存取将不可用,完全的挂掉了。redis
根据抛出的异常信息找缘由和解决方案,在网络上搜寻一圈也没找到缘由和解决方式。有人在redis
官方仓库里提issue,官方说这是Windows平台上的问题,请到微软的仓库里提问题。但是微软已经不在维护redis
,估计提问题的哥们也挺郁闷。数据库
没找到解决办法前只能忍:只要能持续提供服务,不理会报错;若是真正挂掉了,就重启。为了及时处理故障,对平台运行状况做了监控,出现异常时立刻报警通知。windows
某天晚上准备睡觉,接到报警邮件,只好开电脑处理问题。没想到半个小时后又报警,持续两次后顿时有点火大,不解决redis
问题极可能就睡很差觉。想到以前在某个issue里有人推荐过其余人维护的版本,寻思能够试试。翻看微软redis
仓库里的issue,第二个即是。原来 tporadowski
维护了一个版本,而且支持到4.0(官方目前的稳定版)。可贵难得的是,tporadowski
还一直在维护更新,修复bug的同时与上游代码同步。网络
本想先测试一下再上线,又通过一次报警后决定立刻上线替换在用的3.2.100
版本。使用新版没多久,看到出现"fork operation complete"和"background saving teminated with success"消息,顿时感受妥了(以前找“EXCEPTION_ACCESS_VIOLATION”时官方就提到过是Windows下fork出了问题)。事实代表这个版本的redis
很是的稳定,运行到现在,窗口的输出信息所有正常,也没有crash过,烦人的报警邮件也没了。性能
若是你在Windows平台上使用3.2.100
版本的redis
遇到问题,建议试试tporadowski
维护的版本,下载地址是: https://github.com/tporadowsk...。测试