Windows上的Redis

转载请注明文章出处: https://tlanyan.me/redis-on-w...

Redis是一个高性能的内存型NoSQL数据库,是服务端开发中经常使用的软件。Redis官方支持*nix、BSD等系统,没有提供对Windows平台的支持。Windows平台上的Redis由微软开发,但微软目前暂停了对其的支持和维护。微软Redis的Github仓库是 MicrosoftArchive/redis,最后发布的版本是两年前的3.2.100git

在网络上搜索“redis windows”,无论新旧博文仍是教程,都指向了3.2.100。软件老旧没问题,好用就行。但实践证实在大数据量下(超过几千个key),Windows上的3.2.100很快崩溃掉,出现以下错误提示:github

redis 3.2.100

此时不关闭窗口,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过,烦人的报警邮件也没了。性能

redis 4

总结

若是你在Windows平台上使用3.2.100版本的redis遇到问题,建议试试tporadowski维护的版本,下载地址是: https://github.com/tporadowsk...测试

参考

  1. https://redis.io
  2. https://github.com/MicrosoftA...
  3. https://github.com/tporadowsk...
相关文章
相关标签/搜索