I've reached a turning point in my server application(s) building phase where it's becoming a more than reasonable idea to centralize some of the non-persistent data in my system(e.g. player positions, multiple systems need some access to recent positional data). I presently have 6 individual server applications that interact with the game client to some extent and interact with each other to some extent. The complexities of managing the data flow(s) on a peer to peer basis are quickly becoming a hindrance to forward momentum. Additionally my present design doesn't scale, well at all.
I'm presently using key-value data types almost exclusively within the server code itself, to store the data that I need to centralize.
And I need NO persistence, there's no need for a database or file system behind the in-memory KV database. All persistent data is handled by the server code directly.
For scalability it should be able to replicate/synchronize the data across the internet if need be.
So that leads me to a couple of choices and my question.
Which one? Nearly ALL the feature comparisons I can find are published by Alachisoft, and thusly are biased against Redis, and a few years old from the look of them. As well as not being particularly detracting from Redis as a candidate for my use case.
I'm looking at 3 options:
- Ncache http://www.alachisoft.com/ncache/
- Redis https://redis.io/
- HomeBrew... Some of the code I've already got + a good replication algorithm and I'm set.. hahaha Not listed as #1 for a reason. I'm just not sure I want to add an 8th piece of code to my present development load.
Does anybody out there have experience with either or preferably both of these cache/db servers?
Presently I'm leaning towards NCache simply because it matches my present server development and my most likely initial server release environment of Windows/.Net/etc... But I really like everything I've read on Redis as well, and I've engineered Linux servers for as many years as Windows.... And my eventual scale-up platform will likely be Linux.. So, there's most of the variables I'm considering.
I'm really mostly interested in anybody's practical experience with these two or any others in their immediate ball-park, I think Apache Ignite is feature similar with the above two...
Also interested in any non-biased 3rd party comparisons that I'm presently unable to find, if you have any quick links handy.
Thanks for reading!