I'm testing Redis for Windows on my factory and it seems to be working fine. I'm using this
version 3.0.504 (last release). But reading on that site, I saw there is a newer version still in prerelease (3.2.100) since 2016. Now, I'm wondering if it hazardous or not the use of Redis fo Windows in a real production enviroment, because it seems to be "abandonded".
Right, it's abandoned and I wouldn't use it in production, but it's fine for local development/testing.
Here are other ways you can run Redis on Windows:
Although for any high load environment I'd recommend running Redis on Linux where it's fully supported.
Mh.. and which of the solutions proposed on the link would you suggest me? In my plants, there is always one pc SERVER and several pc CLIENT, where each of them has its own AppHost and its own "redis" using Sentinel. I need this kind of configuration because I want to reduce the impact of a fail of an eventual single AppHost or Redis instance
I would like to find a solution easy to setup and as reliable as possible.
The recommendation is always going to be to host on Linux as that’s the only platform Redis server is supported on, if you need to host on windows I’d use Redis on WSL.
BTW I don't know how many clients you have but the ideal number of Redis Sentinels would be 3 or 5 (3 is most common). I've never heard of a configuration where all clients had their own sentinel instance, normally it's just App Servers that would host their own sentinel instance.
Hi, sorry for the delay, but we where on holidays.
I got your point, and I'm trying to understand which solution best fit for us. Let me explain my needs. I have several machines spread accross the plant. In every machine there is an apphost from where I use SSE to notify events "locally" to some listener inside the machine PC. There is also a "server", that act as a "supervisor", that needs these notifications too. My idea was to install an apphost in the server PC and listen to all notifications, and to do this, I need a backplane. Right?
Can I do it by installing a WSL Redis instance on the "server" and setup all my apphost to use it without sentinel? What will happen if the server for some reason is not available? Will notification works "locally" on the machine PC even if the server is offline?
Your setup and expectations sound confusing.
Yes you can use WSL Redis in place of a Linux Redis.
Yes you can use Redis without Sentinel.
If you use Redis for your Server Events it requires Redis to work. No it wont work if your AppHost is configured to use Redis Server and there is no Redis Server to use.
If it wasn't for this requirement for a global supervisor to access all notifications I wouldn't suggest to use Redis at all. It doesn't sound like your "notify events locally" group of local PC's want to share their notifications between each other so if they use Redis they would need to use different channels to send their messages and the "supervisor" would subscribe to server events on all local channels being used.
The alternative approach is for all local SSE notification groups to use the default Memory Server Events then it's just a matter of relaying notifications to the "supervisor" server where one option is to establish an SSE connection to all the local AppHost's and listen to it that way, another approach is for all your AppHost's to notify your server after each SSE message, either directly by making an API call to the server or indirectly by publishing a message to a Redis Pub/Sub topic. If you wanted these notifications to remain durable even if the "supervisor" server is down, my preference would be to publish these messages to a Redis List, in a Custom POCO that contains which App Server sent the message and the message itself.