Redis on Windows
- This is a port for Windows based on Redis.
- We officially support the 64-bit version only. Although you can build the 32-bit version from source if desired.
- You can download the latest unsigned binaries and the unsigned MSI installer from the release page.
- For releases prior to 2.8.17.1, the binaries can found in a zip file inside the source archive, under the bin/release folder.
- Signed binaries are available through NuGet and Chocolatey.
- Redis can be installed as a Windows Service.
Windows-specific changes
- There is a replacement for the UNIX fork() API that simulates the copy-on-write behavior using a memory mapped file on 2.8. Version 3.0 is using a similar behavior but dropped the memory mapped file in favor of the system paging file.
- In 3.0 we switch the default memory allocator from dlmalloc to jemalloc that is supposed to do a better job at managing the heap fragmentation.
- Because Redis makes some assumptions about the values of file descriptors, we have built a virtual file descriptor mapping layer.
Redis release notes
There are two current active branches: 2.8 and 3.0.
- Redis on UNIX 2.8 release notes
- Redis on Windows 2.8 release notes
- Redis on UNIX 3.0 release notes
- Redis on Windows 3.0 release notes
How to configure and deploy Redis on Windows
Premise
Redis on Windows 3.0 introduces a new memory management architecture that:
- improves performance
- reduces the system requirements
- simplifies configuration
On top of the new architecture, the switch from dlmalloc to jemalloc improves the heap
management reducing heap fragmentation.
Memory Configuration Settings Changes
In Redis on Windows 2.8 the memory allocation architecture was based on a memory
mapped file that was created at startup. The size and location of the memory mapped file
were configured using two flags:
maxheap
heapdir
Since Redis on Windows 3.0 doesn't use a memory mapped file anymore, those two flags
are treated as any other invalid flag, therefore if they are present in the configuration file or
passed as a command line argument, Redis will fail to start.
System Paging File Size Requirements
The new memory management architecture uses the system paging file to back the
Redis heap, therefore there are some system requirements to make sure that Redis
doesn't run out of heap space.
Redis on Windows 2.8 was allocating the heap space at once at startup, if more heap
space was needed later on, it was going to fail with an out of memory error. Redis on
Windows 3.0, on the contrary, allocates the heap memory on demand. At startup it only
allocated the minimum amount of heap required to start and it keeps allocating more
memory when needed.
Given that the heap is subject to fragmentation and given some other internal
requirements (i.e. copy on write mechanism to simulate the Unix fork API), a safe minimum
requirement for the system paging file is 2 times the size of physical memory.
By default a freshly installed Windows machine allows the system paging file to grow up
to 3.5 times the size of physical memory (provided that there is enough disk space for it),
therefore the default system paging file configuration is already sufficient to run Redis on
Windows 3.0.
Preventing Redis from running out-of-memory
If other programs, beside Redis, are running on the same machine and they also use
the system paging file or if the system paging file reaches a high degree of fragmentation,
there is still the possibility of an out-of-memory error. A machine reboot will defragment the
system paging file and reduce the possibility of such an event. Increasing the size setting
and setting the Initial size
equal to the Maximum size
also helps.
How to build Redis using Visual Studio
You can use the free Visual Studio 2013 Community Edition. Regardless which Visual Studio edition you use, make sure you have updated to Update 5, otherwise you will get a "illegal use of this type as an expression" error.
-
Open the solution file msvs\redisserver.sln in Visual Studio, select a build configuration (Debug or Release) and target (x64) then build.
This should create the following executables in the msvs\$(Target)\$(Configuration) folder:
- redis-server.exe
- redis-benchmark.exe
- redis-cli.exe
- redis-check-dump.exe
- redis-check-aof.exe
Testing
To run the Redis test suite some manual work is required:
- The tests assume that the binaries are in the src folder. Use mklink to create a symbolic link to the files in the msvs\x64\Debug|Release folders. You will need symbolic links for src\redis-server, src\redis-benchmark, src\redis-check-aof, src\redis-check-dump, src\redis-cli, and src\redis-sentinel.
- The tests make use of TCL. This must be installed separately.
- To run the cluster tests against 3.0, Ruby On Windows is required.
- To run the tests you need to have a Unix shell on your machine, or MinGW tools in your path. To execute the tests, run the following command: "tclsh8.5.exe tests/test_helper.tcl --clients N", where N is the number of parallel clients . If a Unix shell is not installed you may see the following error message: "couldn't execute "cat": no such file or directory".
- By default the test suite launches 16 parallel tests, but 2 is the suggested number.
转载:https://github.com/MSOpenTech/redis#redis-on-windows
Redis on Windows- This is a port for Windows based on Redis.
- We officially support the 64-bit version only. Although you can build the 32-bit version from source if desired.
- You can download the latest unsigned binaries and the unsigned MSI installer from the release page.
- For releases prior to 2.8.17.1, the binaries can found in a zip file inside the source archive, under the bin/release folder.
- Signed binaries are available through NuGet and Chocolatey.
- Redis can be installed as a Windows Service.