31

Windows上的Redis

 5 years ago
source link: https://www.tlanyan.me/redis-on-windows/?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

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

iUFRjyj.png!web

此时不关闭窗口, redis 依然能提供服务。当存放的数据量增长到几万, redis 会弹出第二个崩溃窗口,数据存取将不可用,彻底的挂掉了。

根据抛出的异常信息找原因和解决方案,在网络上搜寻一圈也没找到原因和解决方式。有人在 redis 官方仓库里提issue,官方说这是Windows平台上的问题,请到微软的仓库里提问题。可是微软已经不在维护 redis ,估计提问题的哥们也挺郁闷。

没找到解决办法前只能忍:只要能持续提供服务,不理会报错;如果真正挂掉了,就重启。为了及时处理故障,对平台运行情况作了监控,出现异常时马上报警通知。

某天晚上准备睡觉,接到报警邮件,只好开电脑处理问题。没想到半个小时后又报警,持续两次后顿时有点火大,不解决 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过,烦人的报警邮件也没了。

zu2aMnM.png!web

总结

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

参考

  1. https://redis.io
  2. https://github.com/MicrosoftArchive/redis
  3. https://github.com/tporadowski/redis

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK