microsoftarchive / 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
http://redis.io
Other
20.78k stars 5.37k forks source link

why not to update redis? #573

Open anlexN opened 6 years ago

nlhnt commented 6 years ago

I would like to know that as well. Any other alternatives?

anlexN commented 6 years ago

@Microsoft, can you speak something?

tporadowski commented 6 years ago

A week ago I also found out that this Redis port for Windows was moved to "MicrosoftArchive" and is no longer supported, yet my client planned to use it along with their ASP.NET and WCF-based solutions, so staying close to Windows is essential for them. While researching for another caching solution available for Windows platform I spent a couple of evenings to see how it could be updated to Redis 4.0.2. I haven't seen Redis code before and it's been a while since I last used C, so it all would be best summarized with:

I have no idea what I'm doing

;). Except that it works, partially, but works. You can find the updated code in my MSOpenTech/Redis fork, branch win-4.0.2. Please read the DISCLAIMER first in README as some vital parts are not fully working yet. There is also no binary release, but it can be compiled at least in VS2017.

I would of course like to get some feedback to see whether there is a need for a full port of Redis for Windows - then I could decide if I should get to know Redis' internals and all that stuff ;)

I will cross-post this also to other issues related to future of this project, so that everybody who's interested get to know about this: #525 #497 #523 #573 #565 #556 antirez/redis#4025

johntholland commented 6 years ago

@tporadowski awesome work! People often think that if that can't do something completely and perfectly then they shouldn't start on it at all. These first steps are fantastic

fpdavis commented 6 years ago

@tporadowski this is excellent news! I will check it out.

anlexN commented 6 years ago

No microsoft official or redis team, this is a big hard, big trouble.

ghost commented 6 years ago

If you want redis to run on windows, I recommend use container technology. You can install docker and install latest redis version on docker as a container. And use it. That's what I'm doing on my development pc.

A small hint after installing container: Open powershell and write:

docker run -p 6379:6379 redis

With that command you can have standard redis port up and running...

image

And here is benchmark with old redis-benchmark.exe:

image

anlexN commented 6 years ago

it is a big detour

tporadowski commented 6 years ago

@mlhkr you're absolutely right - it can be started within a VM, container, etc. but for various reasons - this is not always feasible, unfortunately.

cannap commented 6 years ago

you can also try to use windows 10 subsystem

SebastianStehle commented 6 years ago

We had so many problems with this port. I really recommend to move to Linux for Redis. When you need Redis you have a multi-server architecture. Where is the deal with getting a Linux VM for Redis?

tporadowski commented 6 years ago

@SebastianStehle when installing an application on premises for bigger corporations - adding one more stack element (Redis) that needs to be taken care of by their team is sometimes... problematic. Not even from technical perspective, but usually from organizational. Thus if you have an application that relies on Windows and your team is deploying it there - it's simply easier to bundle it together without all that hassle :)

SebastianStehle commented 6 years ago

This was also our argument when we started to host it in Windows. And then it caused so much problems that all these arguments became invalid later ;)

tporadowski commented 6 years ago

@SebastianStehle could you please share some more details about those problems?

anlexN commented 6 years ago

contact microsoft CEO, @everyone

fpdavis commented 6 years ago

Having it running on the same server as the application is a big advantage and less infrastructure to maintain. So far it has been running without any issue for us.

tporadowski commented 6 years ago

If you are interested in testing Redis 4.0.2 for Windows - please give this alpha release a try :)

anlexN commented 6 years ago

@tporadowski , what features do your alpha release support? what difference combared to official redis?

tporadowski commented 6 years ago

@anlexN: Redis 4.0.2 for Windows is a merge of Windows-specific changes from latest (unsupported) 3.2.100 release from MSOpenTech and Redis 4.0.2 and my alpha release consists of:

Main difference to official Redis 4.0.2 (except no support for modules at the moment) is old version of jemalloc-win dependency, which is planned to be updated to the same version in beta release. There is also a pending task tporadowski/redis#5 to review bigger Windows-specific changes and compare them with latest Redis code (as some behavior may have been changed there).

anlexN commented 6 years ago

@tporadowski , can you be MSOpenTech contributor? contact them. Do you plan to develop actively? I want to have a guarantee.

tporadowski commented 6 years ago

@anlexN apparently there was not enough interest from Microsoft to further support Redis on Windows and it got "archived" here. Thanks to their work and contribution it can be further maintained, but for the moment I have no idea if there is any bigger interest in it from the community/companies (it's hard to tell much by looking at the list of 14 stargazers and 6 watchers gained over last month).

Current state of Redis 4.0.2 for Windows serves the needs of my client who is incorporating Redis into their application landscape, so in case we run into any issues there - I will fix them and publish them on Github. Personally maintaining Windows port of Redis is a welcome distraction from my everyday tasks (different language, different tool set, etc.), so I would like to further keep this port alive in my spare time - but it would have been way nicer if I only knew that you and @Jerry-Shaw are not the only users of that port out there ;). So as you may have guessed - there are no guarantees at the moment.

anlexN commented 6 years ago

@tporadowski . thank you, you are right. i hope you will have more confidence

tporadowski commented 6 years ago

@anlexN I've been developing software for more than 20 years and I still love it :), so it's not about confidence but about a purpose. I just need to have a real purpose here to keep it going. I'm not saying that without thousands of interested users it doesn't make sense and I'm already really happy to see that my fork gets some traction, but it would certainly help if my efforts on porting Redis to Windows were beneficial to a broader audience.

adipriyantobpn commented 6 years ago

for so much time & energy consuming hard work, your fork is so much appreciated, @tporadowski.

as i've also struggled with the unstable version in the past & later my system factually been forcefully migrated into Linux with some reasons this & there.. :)

thanks again 👍

egbertn commented 6 years ago

Windows 10 Anniversary update can run Linux ubuntu as a subsystem, so, no VM OS host (such as vagrant) needed. https://stackoverflow.com/questions/6476945/how-do-i-run-redis-on-windows I have run Redis 4.0.2 and make test passed all tests except with a few warnings. I understand that those C++ MS gurus should invest in getting this subsystem top-level (which it nearly is I think) so those Linux servers run without porting it first to windows compatible code. B.t.w. they did a wonderful job on Redis 3.2 on Windows, looking at the source. Very instructive to see how you should code C++ :)

enricogior commented 5 years ago

Hi @anlexN @nlhnt , this repository hasn't been updated in almost 3 years. But finally there is a new software that provides Redis compatibility on Windows, and is currently up-to-date with the Redis 5 API. See https://github.com/MicrosoftArchive/redis/issues/620.