SwCacheService is simple & fast outofproc HTTP cache solution which is developed with C#. It's running as http server in windows services. You can set and get cache values with keys.
It is fast. It does not depend on any big web framework, there is no mvc or webapi solution (except for .net framework). It's support http GET and POST so you can easily use from anywhere, no connection needed. It works on plain http listener. It usually has reponse times 1-5 ms which is not possible with .net's mvc or webapi projects.
I developed this project because it is hard to find reliable cache solutions for windows. Redis and Memcached like projects usually come from linux distributions. They are little bit complex and sometimes may cause issues. This project may help people who needs basic out of proc cache solution with basic setup.
It is native .net solution fully compatible with windows, can be run as windows service.
Runs at localhost -> http://localhost:8080
{
"expiresAt":"2030-10-10",
"key":"YourKeyHere",
"value":"Your Value Here"
}
{
"key":"YourKeyHere"
}
<appSettings>
<add key="port" value="8080" />
</appSettings>
This may affect the cache performance little bit, but it doesn't loose caches on computer or service restart. It loads all the from /appdir/CachedFiles and adds all of the keys in memory again. Persistent mode works with in memory and provider based together. If you set a persister provider below it will continue to use memory for performance purposes. Memory based caching can't be ignored totally)
<appSettings>
<add key="persisterType" value="None" /> <!--file, None or write a customProvider -->
</appSettings>
You can have fully syncronized cache server by specifying nodes, date will be syncronized in two way, nodes-> otnernodes, master -> othernodes. It will be enough to set cache in any client.
<appSettings>
<add key="id" value="master" /> <!--each node should have unique Id 'master' text doesn't matter -->
<add key="node1path" value="localhost" />
<add key="node1port" value="8181" />
<add key="node1id" value="node1" />
<add key="node2path" value="localhost" />
<add key="node2port" value="8282" />
<add key="node2id" value="node2" />
</appSettings>
You can view and delete cache items manually via Manager