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.82k stars 5.38k forks source link

Announcing Memurai: Windows-native cache and datastore compatible with Redis 5 #620

Open enricogior opened 5 years ago

enricogior commented 5 years ago

We are a team of developers that has been hard at work building a Redis-compatible datastore for Windows. This effort is not affiliated with nor endorsed by Microsoft.

Today we are announcing the technical preview of Memurai for Windows, a Windows-native cache and datastore compatible with Redis 5. Memurai aims to fulfill the need for a Redis-compatible datastore on the Windows platform. It is based on an updated code base designed to provide better compatibility, reliability and performance. You can download the software and learn more about it at https://www.memurai.com.

We are going to provide technical support to early adopters of the technical preview. So if you need help or have any questions, don’t hesitate to contact us using the channels provided on the website. We look forward to your feedback and to learning more about how you plan to use Memurai.

Enrico Giordani Engineering Manager, Memurai

salzersoftware commented 5 years ago

With the rise and standardization of Docker in the industry, why would someone use Memurai instead of simply running Redis on a Docker? In addition, in most cloud native environments you're going to find Elasticache/Azure Cache in use.

smallswan399 commented 5 years ago

Are you going to open source? What are the limitations of the free version?

orangemocha commented 5 years ago

@smallswan399 We are currently not planning to open source it. When Microsoft’s sponsorship of this repository ended, we tried really hard to keep it alive as an open source project. Since we are a small consulting company, we could not afford to sponsor it ourselves in the long run. So we investigated different models including donations, offering commercial support, and partnering with other companies in this space, but it become clear that none of those were viable or sustainable. In the end, we decided to pursue a freemium model, with a free version for development use, and a few tiers of paid versions for production use, with levels of scale and support to fit different users’ needs.

The current technical preview doesn't have any limitations, though it expires 180 days from the release date. When out of technical preview, the free version will have the following limitations: 1) The license will allow its use for development and testing, but not for production. 2) All the features that you would expect from a Redis-compatible datastore will be available, although there might be some quantitative limitations in line with the intended use for development, ie: a limit on the number of clients and/or memory.

We are in the process of defining those details. Of course, we appreciate and look forward to constructive feedback from the community.

Alexis Campailla CEO, Memurai

Dream4ever commented 5 years ago

With the rise and standardization of Docker in the industry, why would someone use Memurai instead of simply running Redis on a Docker? In addition, in most cloud native environments you're going to find Elasticache/Azure Cache in use.

The websites of our company are all running on a Windows Server 2012 on cloud, and it takes too much to switch to Windows Server 2016 or Ubuntu/CentOS.

Not everyone has good environment.

ZedZipDev commented 5 years ago

Redis is free, but Memurai is smart: "The license will allow its use for development and testing, but not for production." :-D

adev73 commented 4 years ago

With the rise and standardization of Docker in the industry, why would someone use Memurai instead of simply running Redis on a Docker? In addition, in most cloud native environments you're going to find Elasticache/Azure Cache in use.

I do a lot of development whilst on the move (on the train) on a Windows 7 laptop. Spinning up a VM to run Redis every time I get on/off the train, just to do a bit of development would be a right pain - a native instance would be right there ready to go when I've got my dev environment fired up.

So yeah - a Redis-compatible DB for Windows would be very high on my wish list. The real question will be - HOW compatible is it? e.g. can I dev against Memurai & deploy against Redis, given my production environment will be Linux?

salzersoftware commented 4 years ago

@adev73

Spinning up a VM to run Redis every time I get on/off the train

Install and run Docker on your computer, and then run this command: docker run --name=redis-dev --publish=6379:6379/tcp --hostname=redis --detach redis:4.0.12

There's no need for Windows compatible Redis, Redis runs on Linux, and you can run Redis on Linux locally in Docker.

tporadowski commented 4 years ago

There's no need for Windows compatible Redis, Redis runs on Linux, and you can run Redis on Linux locally in Docker.

Options to run Redis on Windows have been discussed here and on StackOverflow a lot and the conclusion is basically that there are several of them :). I would however disagree with "there is no need for Windows compatible Redis" as I see a steadily increasing interest in that version - be it just for development purposes or for using it in production. Choosing a Windows version over its original Linux one is very specific to each use case as there are various environment constrains, organizational limitations, personal preferences, and so on. What I personally like here is that there is a choice :) and you are not limited to "one and only" way of doing something.

orangemocha commented 4 years ago

The real question will be - HOW compatible is it? e.g. can I dev against Memurai & deploy against Redis, given my production environment will be Linux?

Being based on Redis source code, Memurai is as compatible with Redis 5 as it gets. There are a few configuration flags that are not supported (mostly because they don't apply to the Windows environment). See the documentation for more information.

adev73 commented 4 years ago

Spinning up a VM to run Redis every time I get on/off the train

Install and run Docker on your computer,

It's a Windows 7 laptop: Docker runs in a VM on Windows 7, and is therefore not a suitable solution for my use-case (which is bl**dy annoying, because I'd really like to explore Docker some more, but that's for another day).

The real question will be - HOW compatible is it? e.g. can I dev against Memurai & deploy against Redis, given my production environment will be Linux?

Being based on Redis source code, Memurai is as compatible with Redis 5 as it gets.

As I have discovered, by downloading Memurai and installing it (while on the train :)), thus I now have a working "redis" solution which I can continue working on when I'm at home, using the Linux box.

Nice work Memauri :)

shaikmoeed commented 4 years ago

As I get to know about Memurai is an alternative to Redis. I want to use it as my Django-channels backend. Can anyone help me in configuring Memurai for Channels 2.x?

My current Redis CHANNEL_LAYERS config is

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "channels_redis.core.RedisChannelLayer",
        "CONFIG": {
            "hosts": [('localhost', 6379)],
        },
    },
}

For Memurai, what should I use in "BACKEND":_____________,?

tporadowski commented 4 years ago

@shaikmoeed there should be no reason to change anything as it is a drop-in replacement that is fully compatible with Redis (it is a continuation of this very fork, but under a different name)

dv336699 commented 4 years ago

For those coming to this thread, this is a commercial product and not production ready if you don’t pay for it.