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!