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.

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.

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 sizeequal 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.

猜你喜欢

转载自yangyangmyself.iteye.com/blog/2279990
今日推荐