I am implementing SignalR in my project and I need to decide what I will user - Redis or SQL Server and I have trouble doing it.
The main functionality of my client project will be processing huge files. So let's say I have a file of 100.000 lines. I have a user that will upload this file and once the server code finishes processing 10 lines he will send the browser some notifications that will go like this:
10 lines processed (8 existing, 1 new, 1 error)
20 lines processed (18 existing, 1 new, 1 error)
30 lines processed (25 existing, 2 new, 3 error)
...
99.990 lines processed (x existing, y new, z error)
Done
This is the first time I will use Redis so I am not exactly clear what I will store in the key-value pairs it provides. I assume it will be something like this:
[connectionId]:[numberOfLinesProcessed]
I will publish my SignalR service to 2 servers and from what I've read the faster solution is Redis and also the key-value pairs will be enough, I don't need a table for this. However I am worried what if the Redis service fails? If I use SQL Server and if something fails I have the latest info stored in table, but with Redis is it lost?