Memcache server, which uses YBC library as caching backend.
Thanks to YBC, the server has the following features missing
in the original memcached:
* Cache content survives server restarts if it is backed by files.
* Cache size may exceed available RAM size by multiple orders of magnitude.
The server should remain fast until the total size of frequently accessed
items exceeds RAM size. It may remain relatively fast even if frequently
accessed items don't fit RAM if cache files are located on fast SSDs.
* The maximum value size is limited by 2Gb.
* There is no 250 byte limit on key size.
* Support for 'dogpile effect' handling - see http://godoc.org/github.com/valyala/ybc/libs/go/memcache#Client.GetDe .
* Support for 'conditional get' command - see http://godoc.org/github.com/valyala/ybc/libs/go/memcache#Client.Cget .
------------------------
How to build and run it?
$ sudo apt-get install golang
$ go get -u github.com/valyala/ybc/apps/go/memcached
$ go build -tags release github.com/valyala/ybc/apps/go/memcached
$ ./memcached -help
Memcache server, which uses YBC library as caching backend.
Thanks to YBC, the server has the following features missing
in the original memcached:
Cache content survives server restarts if it is backed by files.
Cache size may exceed available RAM size by multiple orders of magnitude.
The server should remain fast until the total size of frequently accessed
items exceeds RAM size. It may remain relatively fast even if frequently
accessed items don't fit RAM if cache files are located on fast SSDs.
The maximum value size is limited by 2Gb.
There is no 250 byte limit on key size.
Support for 'dogpile effect' handling - see Client.GetDe()
at github.com/valyala/ybc/libs/go/memcache for details.
Support for 'conditional get' command - see Client.Cget()
at github.com/valyala/ybc/libs/go/memcache for details.