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

Home Page:http://redis.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

enricogior opened this issue · comments

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

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.

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

@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

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.

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

commented

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?

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

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.

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.

commented

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 :)

commented

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":_____________,?

@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)

commented

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