redis
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
Top Related Projects
Docker Official Image packaging for Redis
Quick Overview
The microsoftarchive/redis repository is an archived Microsoft fork of the Redis project, an open-source, in-memory data structure store. This fork was created to provide Windows support for Redis, which was originally designed for Unix-like systems. It is no longer actively maintained by Microsoft.
Pros
- Provided Windows support for Redis
- Enabled Windows developers to use Redis in their projects
- Offered performance optimizations for Windows environments
- Included Windows-specific build scripts and configurations
Cons
- No longer actively maintained by Microsoft
- May contain outdated code and security vulnerabilities
- Lacks recent features and improvements from the main Redis project
- Limited community support due to its archived status
Code Examples
As this is an archived fork of Redis and not a code library itself, code examples are not applicable. Users would typically interact with Redis using client libraries in various programming languages.
Getting Started
Since this is an archived project and not recommended for use, it's better to use the official Redis distribution or Windows alternatives. For those interested in exploring the historical Windows port, you can clone the repository:
git clone https://github.com/microsoftarchive/redis.git
cd redis
However, it's strongly recommended to use the official Redis distribution or Windows alternatives like Memurai for production environments.
Competitor Comparisons
Docker Official Image packaging for Redis
Pros of docker-library-redis
- Actively maintained with regular updates
- Official Docker image for Redis, ensuring compatibility and best practices
- Supports multiple Redis versions and architectures
Cons of docker-library-redis
- Focused solely on Docker deployment, less flexible for non-containerized environments
- May require more configuration for advanced Redis setups
Code Comparison
redis:
msiexec /i Redis-x64-3.0.504.msi
docker-library-redis:
FROM redis:6.2
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
Key Differences
- redis is a Windows-specific implementation, while docker-library-redis is platform-agnostic
- redis focuses on native Windows installation, docker-library-redis on containerized deployment
- docker-library-redis offers more flexibility in terms of Redis versions and configurations
- redis may be easier to set up for Windows users not familiar with Docker
Use Cases
- Choose redis for Windows-native Redis installations without containerization
- Opt for docker-library-redis for cross-platform, containerized Redis deployments or when working with microservices architectures
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
This project is no longer being actively maintained. If you are looking for a Windows version of Redis, you may want to check out Memurai. Please note that Microsoft is not officially endorsing this product in any way.
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
- Memory Configuration for 2.8
- Memory Configuration for 3.0
- Windows Service Documentation
- Redis on Windows
- Windows Service Documentation
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.
Code of Conduct
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Top Related Projects
Docker Official Image packaging for Redis
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot