如何在Windows上运行Redis?

773

我该如何在Windows上运行Redis? Redis下载页面似乎只提供*nix选项。

我能否在Windows上原生地运行Redis?


43
请注意,得票最多的答案链接到一个使用非常旧版本的Redis的过时仓库。如果你需要更新的版本,请查看我的答案链接 - Salvador Dali
2
MSOpenTech刚刚宣布推出Redis 2.8.4的生产就绪版本。不过,看起来我收集所有组件的指南仍然适用。 - Todd Menier
8
我建议在Windows上使用Docker和redis。以下是几个相关仓库:
  • 官方redis仓库:https://hub.docker.com/_/redis/
  • redis企业级仓库(运行Redis Cloud by Redis Labs的集群化redis):https://hub.docker.com/r/redislabs/redis/
- Cihan B.
23
请注意回答和评论中的日期,这比此问题的赞更重要。大多数答案(包括我的)现在已经过时。微软的本地端口似乎已经停止了。如果您使用的是最新的Windows 10,则在Ubuntu上运行Redis 似乎 是最佳选择。请参阅此处 - Todd Menier
8
大多数答案已过时且指向现已停止的项目。MSOpenTech端口在2016年被停止。请参阅我的答案,以获取与最新Redis(本文撰写时为Redis 5)保持最新的解决方案。 - Alexis Campailla
显示剩余6条评论
40个回答

516

历史上,微软曾有一个redis的Windows端口,被称为Redis-64,提供了Windows下完整的redis分发。

微软的这个端口现在已经停用,但是出现了一些替代方案来填补这个空缺:

  • Memurai是官方推荐的Redis-64停用页面上的替代选择;它是由Janea Systems维护的商业产品,有免费的开发人员计划
  • redis-windows是另一个非官方的端口,也存在着

此发布包括redis-server.exe(在Memurai上是memurai.exe)应用程序,它可以在您的Windows机器上将Redis实例作为服务运行,以及redis-cli.exe(在Memurai上是memurai-cli.exe),您可以使用它与任何Redis实例进行交互。

RGL存储库曾被列为Redis的替代Windows端口,但是这个存储库已经有一段时间没有得到维护,并且实现的Redis版本比微软端口旧。


2
对我来说不是一键操作。我已经运行了可执行文件,但仍然不确定如何使其运行。 - Trevor de Koekkoek
8
运行安装程序后,我需要按照自述文件的描述,在 c:\Program Files\Redis 目录下手动放置 redis.conf 文件。我只需复制 c:\program files\Redis\conf\redis-dist.conf 即可。然后,我可以从服务控制面板(或在命令行中键入 'net start redis')启动服务。 - solublefish
6
我需要编辑服务并将帐户更改为“本地系统”,否则服务将无法启动。我不需要复制任何配置文件。 - Ingo Kegel
要获取最新版本的这个好的解决方案,并且仍然可以在Windows Server 2003上运行,您应该:
  1. 按原样安装+调整权限(如果您设置了其他用户来运行服务)
  2. 将exe文件更改为Todd解决方案中版本2.6.12的文件(请参见下一个步骤)
  3. 从###### VIRTUAL MEMORY ####到结尾中删除\conf\redis.conf中的字符串
- sherdim
2
这些版本在多年前就已经过时了。目前的建议是使用WSL。 - Niko Pasanen

323

更新

如果您在Windows 10和Windows Server 2019上本地安装了Windows子系统(Linux版),您可以按照Ogglas的回答这样做。

或者按照以下说明在Microsoft Windows上运行Redis数据库:

    1. 打开Windows子系统(Linux版)

    在Windows 10中,Microsoft将命令提示符替换为PowerShell作为默认shell。以管理员身份打开PowerShell并运行此命令以启用Windows子系统(Linux版):

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

更改后,请重新启动Windows - 请注意,您只需要执行此操作一次。

    1. 启动Microsoft Windows商店
  • start ms-windows-store:
    

    然后搜索Ubuntu,或者您偏好的Linux发行版,并下载最新版本。

    1. 安装Redis服务器

    安装Redis非常简单直观。下面的示例适用于Ubuntu(首次使用时需要等待初始化并创建登录):

  • sudo apt-add-repository ppa:redislabs/redis
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install redis-server
    
    请注意,根据系统的用户配置,sudo 命令可能需要或不需要。重新启动 Redis 服务器,方法如下:
    sudo service redis-server restart
    
    1. 验证 Redis 服务器是否运行

    使用 redis-cli 命令测试与 Redis 数据库的连接性。

  • $ redis-cli
    127.0.0.1:6379> set user:1 "Ben"
    127.0.0.1:6379> get user:1
    "Ben"
    

    请注意:Redis默认有0-15个数据库索引,您可以在redis.conf中更改数据库数量为NUMBER。

    1. 停止Redis服务器
  • sudo service redis-server stop
    

    来源:在 Windows 上安装 Redis 的方法


    我找到了另一种在 Windows 下安装 Redis 的简单方法

    从以下网址下载最新的 Redis .msi 文件:

    https://github.com/MSOpenTech/redis/releases

    下载并安装后,Redis 服务就被安装好了,我们可以通过 Service manager 操作它。

    enter image description here


    3
    是的,这是最好的解决方案,尽管我已经投票支持了上面的一个解决方案。这个解决方案不需要启动redis-server.exe就可以使用它。 - Tom
    21
    看起来3.2预发布时工作停止了,但Redis现在已经更新到4.0版本。 - BaltoStar
    获取 Windows 下 Redis 实例的最简单方法。 - Pyrejkee
    1
    这是官方博客,提供了此解决方案:https://redislabs.com/blog/redis-on-windows-10/ - borjab
    我已经成功地运行了程序,但是如何访问网页呢?我尝试过导航到localhost:6379,但什么也没有。 - johnny 5
    显示剩余2条评论

    173

    如果您想在Windows服务器上安装MSOpenTech的最新Redis端口,并监控Windows服务,而无需自己构建任何内容,请继续阅读。

    MSOpenTech's似乎是唯一一个积极尝试跟进最新和最伟大的Redis的端口。他们声称它已经可以在生产环境中使用,但他们并没有将其整齐地打包安装到服务器上,特别是如果您想运行他们的RedisWatcher服务来监控它,这是推荐的。(我根据他们的说明尝试构建RedisWatcher,但所需的Wix Toolset成功地破坏了我的系统。我不会详细说明。)幸运的是,他们提供了您需要的所有二进制文件,只是没有都放在一个地方。自README:

    到目前为止,RedisWatcher还没有转移到2.6。但是,这不应受Redis版本的影响,2.4分支中的代码应该可以使用Redis 2.6二进制文件。

    因此,您需要从2个分支下载二进制文件以获取所有必要的部件。以下是步骤:

    1. 从2.6分支下载并提取Redis二进制文件
    2. 将所有提取的二进制文件复制到c:\redis\bin
    3. 在c:\redis\inst1处创建另一个文件夹
  • 下载并提取来自2.4分支的RedisWatcher二进制文件
  • 运行InstallWatcher.msi。这将创建一个名为Redis watcher的Windows服务。
  • 打开Windows服务控制台并启动Redis watcher服务。
  • (可选) RedisWatcher应该已安装到C:\Program Files (x86)\RedisWatcher。在那里,您会找到一个名为watcher.conf的配置文件,您可以编辑它以设置其他实例,使用与步骤2和3中指定的不同路径等。您无需重新启动服务即可生效更改。

  • 1
    你会很高兴尝试这个。它至少在我的Windows 2008 R2 64位服务器上可以工作。只需要5分钟。 - Christiaan Westerbeek
    运行InstallWatcher.msi时,我收到了一个不错的错误提示: 此Windows Installer软件包存在问题。无法运行完成此安装所需的DLL。请联系您的支持人员或软件包供应商。 - tfont
    最后,如果您想知道Redis是否已安装并正常工作,您可以下载Redis桌面管理器(https://github.com/uglide/RedisDesktopManager或通过Chocolatey)。默认情况下,主机是在端口6379上运行的本地主机。 - Ryan Shripat
    2
    使用Chocolatey进行安装:http://geekindulgence.com/install-redis-as-a-windows-service-using-chocolatey/ 在开发机器上非常有用。对于服务器,我感到困惑。 - PreguntonCojoneroCabrón
    Redis 2.6.12是最后一个可以在Windows Server 2003上运行的版本。 - sherdim

    170
    您可以在此处找到Redis最新版本的更新(仅少数次要版本更新)here。该存储库为您提供3.2.100版本(当前版本为3.2),而最受欢迎的答案仅提供给您2.4.6版本,且该存储库的上次更新是两年前。
    安装过程很简单:只需将存档中的所有内容复制到任何文件夹中,然后运行redis-server.exe以启动服务器,并通过命令行运行redis-cli.exe连接到该服务器。

    如果只是想运行exe文件,那很简单。但在生产环境中,我绝不会这样做而不使用监视器服务。而且,他们没有为2.6分支提供二进制文件,原因不明。幸运的是,2.4版本的服务与2.6版本的exe兼容 - 参见我的答案,以获取全部内容并运行。 - Todd Menier
    9
    很可能没有人会在生产环境中运行exe文件,因为人们会使用一些Linux系统。以下是如何设置Redis以便进行学习和测试(我不明白为什么需要在这里运行多个Redis实例)。 - Salvador Dali
    我正在生产环境中运行它,而且效果很好。话虽如此,其他条件相同的情况下,你是正确的,Linux 是更好的选择。但我们是一个小型的 Windows 店铺,没有太多的 *nix 专业知识可言。 - Todd Menier
    2
    谢谢,Salvador。这正是我在寻找的。为了表达我的感激之情,我刚刚给了你双倍的信用。一个赞成正确答案,一个赞成指引我远离过时但最受欢迎的答案。 - user64141
    我个人更喜欢这种方法。+1 - Jason
    显示剩余2条评论

    123

    2
    这个对我有用(zip),我尝试了同样链接上列出的msi,但没有成功。 - Lu Roman
    4
    请注意,当你点击 "redis-server.exe" 时可能会出现没有反应的情况。实际上,你需要从命令提示符中运行该.exe文件并提供"--maxheap" 参数。类似这样..."redis-server --maxheap 1024M" - Dhrumil Bhankhar
    1
    这是最终答案。获取在Windows上“官方”Redis的最简单、最可靠的方法。谢谢。 - raddevus
    我在想,如果我们决定在云上托管我们的应用程序,这将如何转化?我们将如何指示云服务器执行这些任务,例如启动 redis-server.exe - Awshaf Ishtiaque
    @AwshafIshtiaque 这只是用于本地设置,你可以在云中使用很多选项来使用redis,你可以使用完全管理的内存服务,如uptash redis vercel、elasticcache AWS,或将其托管到你的nginx服务器上以供云使用。https://www.digitalocean.com/community/tutorial_collections/how-to-install-and-secure-redis - Cristiana Chavez
    显示剩余2条评论

    62

    1
    作为一条注释,我从Windows商店安装了Ubuntu 18,并且在安装和构建Redis之前必须执行sudo apt install gcc make。我也遇到了这个问题 ;) https://dev59.com/h1oU5IYBdhLWcg3wzZA1 - jinglesthula
    3
    你怎样从Windows访问这个安装文件? - neslekkiM
    1
    你可以从Bash访问它。如果你正在运行像Laravel这样的应用程序,只需要在环境文件中设置变量,Redis就会在你的项目中可用。这是因为它使用了端口6379。 - awebartisan
    我尝试了链接2中的指示,但对我没有用,但是这个链接可以:https://redislabs.com/blog/redis-on-windows-10/,使用Ubuntu 18.04。 - JLi
    这是正确的方法(WSL),但细节缺失(在链接后面)。@Ogglas的答案也一样,但包含安装说明。 - Niko Pasanen

    55

    如果您在Windows 10和Windows Server 2019上原生安装了 Windows子系统Linux(WSL),可以按照以下步骤进行操作:

    设置WSL:

    1. 要启用Windows子系统Linux,请按照Microsoft文档的说明操作。简短版是: 在Windows 10中,微软将命令提示符替换为PowerShell作为默认shell。以管理员身份打开PowerShell并运行此命令以启用Windows子系统Linux(WSL):

      Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
      
    2. 更改后重新启动Windows-请注意,您只需要执行此操作一次。

    3. Microsoft Store下载并安装受支持的Linux发行版之一。 Ubuntu可用。
      请注意,Ubuntu 20.04 LTS可能会因为实时时钟的已知问题(截至2020年8月)而出现问题。选择Ubuntu 18.04 LTS可以避免该问题。

    安装和测试Redis:

    1. 从Windows Store启动已安装的发行版,然后安装redis-server。 以下示例适用于Ubuntu(您需要等待初始化并在首次使用时创建登录):

      > sudo apt-get update
      > sudo apt-get upgrade
      > sudo apt-get install redis-server
      > redis-cli -v
      
    2. 重新启动Redis服务器以确保它正在运行:

    3. > sudo service redis-server restart
      
      执行一个简单的Redis命令来验证您的Redis服务器正在运行并可用:
      $ redis-cli 
      127.0.0.1:6379> set user:1 "Oscar"
      127.0.0.1:6379> get user:1
      "Oscar"
      
    4. 停止 Redis 服务器:

    5. > sudo service redis-server stop
      

    Source:

    https://redislabs.com/blog/redis-on-windows-10/

    https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux


    1
    请注意,商店中的Ubuntu最新版本对我来说无法正常工作。必须卸载并安装18.04版本才能使Redis正常工作。 - JLi
    2
    这是在Windows 10上使用Redis的最新方法。 - Niko Pasanen
    我在使用Win 10.0.18363.1198 + WSL 1(通过PS“wsl -l -v”进行确认),并且在这里使用Ubuntu 20.04没有问题。Redis正在正常运行并接收命令。虽然不是生产环境,但是在开发和测试方面一切似乎都很顺利。 - Tom Dibble
    应该被接受为正确答案。只是想确认@TomDibble所说的,我尝试使用Ubuntu 20.04。当我运行sudo apt-get upgrade时会有一点卡顿,但我按下了CTRL + C,我以为这会中止操作,但它仍然设置了已下载的软件包。我以为我必须安装Ubuntu 18.04,但我先继续进行redis安装。好吧,其余的命令都有效。如果最终必须切换回18.04,我会更新的。 - Irfandy Jip
    这是针对此问题最有帮助的帖子,感谢@Ogglas。 - Sobhan
    显示剩余2条评论

    53

    访问发布版本,你可以获取一个ZIP文件,其中包含相关文件以及一个名为RedisService.docx的Word文档,文档中提供以下指示:

    安装服务

    --service-install

    这必须是redis-server命令行中第一个参数。在此之后出现的参数将按照它们出现的顺序传递给Redis,当服务启动时也会执行这些参数。服务将被配置为自动启动,并作为"NT AUTHORITY\NetworkService"启动。成功安装后,将显示一条成功信息,Redis将退出。 此命令不会启动服务。

    例如:

    redis-server --service-install redis.windows.conf --loglevel verbose

    稍后,在同一文档中,另一个例子如下:

    以下内容将作为服务安装并启动三个单独的Redis实例:

    redis-server --service-install -–service-name redisService1 –port 10001

    redis-server --service-start --service-name redisService1

    redis-server --service-install --service-name redisService2 –port 10002

    redis-server --service-start --service-name redisService2

    redis-server --service-install --service-name redisService3 –port 10003

    redis-server --service-start --service-name redisService3

    从我所了解的情况来看,这似乎是与使用单独的Windows服务监视和重新启动CLI相比更为实用的新方法。


    当前版本(redis-2.8.12.zip)仅适用于x64 Windows。请尝试使用x86版本的2.6分支,但这个版本无法作为服务运行:https://github.com/MSOpenTech/redis/tree/2.6/bin/release - ducu
    这个方法适用于2.8吗? - godimedia
    1
    我们难道需要为了在Windows上安装Redis而安装Visual Studio吗?太愚蠢了。:| - godimedia
    2
    二进制文件已移至发布页面 https://github.com/MSOpenTech/redis/releases - Igor Kudrin
    谢谢,伊戈尔!我已经更新了上面的引言段落以反映这个变化。 - bbrown
    我尝试了这个,但端口命令没有起作用,所以我尝试了:redis-server --service-install --service-name Redis然后它就起作用了。 - khaosdoctor

    37

    如果您尚未从命令提示符连接到Windows上的Redis,请使用cd C:\ Program Files \ Redis,然后运行redis-server。 - Ramesh

    32
    你可以使用 Memurai for Windows,这是一个 Redis 兼容的缓存和数据存储系统,目前与 Redis 5 兼容。Memurai 旨在满足 Windows 平台上支持 Redis 兼容的数据存储系统的需求。它的核心基于 Redis 源代码,移植到 Windows 上本地运行,并且旨在提供生产环境所需的可靠性和性能水平。Memurai 可以免费用于开发和测试。你可以了解更多信息并下载 Memurai,请访问https://www.memurai.com
    Alexis Campailla CEO, Memurai

    尽管我很感激你的努力,但那个最终用户许可协议是不行的。拒绝。 - airstrike
    2
    我认为使用这种方法是在Windows上本地运行Redis的更现代化方式。 - jbernardo
    有开源版本或者限制功能的生产版可用吗? - Tushar
    2
    @Tushar,目前没有开源或免费的生产版本。但是我们有不同的定价计划来适应不同(例如小型初创企业)的需求,因此我建议您通过https://www.memurai.com/contact联系我们。 - Alexis Campailla

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接