• Stars
    star
    9,010
  • Rank 4,017 (Top 0.08 %)
  • Language
    C
  • License
    Other
  • Created about 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Native port of Redis for Windows. Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs. This repository contains unofficial port of Redis to Windows.

Redis 5.0.14 for Windows

You can find the release of Redis 5.0.14 for Windows on releases page. Please test it and report any issues, thanks in advance!

Redis 4.0.14 for Windows

You can find the release of Redis 4.0.14 for Windows on releases page. Please test it and report any issues, thanks in advance!

DISCLAIMER

At the moment win-4.0.14 branch provides a stable port of Redis 4.0.14 for Windows x64 and win-5.0 branch provides a stable port of Redis 5.0.14 for Windows x64, both merged with archived port of win-3.2.100 version from MS Open Tech team. Since the latter is no longer maintained - the sources were merged by hand, projects updated to Visual Studio 2019 (v16.2.5) and any findings (mostly via unit tests) were fixed.

You can find the original description of what this fork provides, how it evolved, what are its requirements, etc. on Wiki: https://github.com/tporadowski/redis/wiki/Old-MSOpenTech-redis-README.md

Building from source code

In order to build this project from source code you need to have:

  1. Visual Studio 2019 (i.e. Community Edition, version 16.2.5 or newer) with "C/C++ features" enabled,
  2. Windows SDK 10,
  3. Git Bash for Windows or Cygwin with Git - after cloning this repository you need to run src/mkreleasehdr.sh script that creates src/release.h with some information taken from Git; optionally you can create that file by hand.

Dependencies

This project depends on jemalloc memory allocator, which is slightly customized in regard to calls to VirtualAlloc and VirtualFree WinAPI functions. They are being replaced with calls to AllocHeapBlock/PurgePages and FreeHeapBlock from src/Win32_Interop/Win32_QFork.cpp in order to keep track which memory regions are to be made available to child processes (for saving RDB/AOF).

Changes to jemalloc that provide those customizations are being maintained in tporadowski/jemalloc repository and are copied over to deps/jemalloc.