https://github.com/rpcxio/gomemcached
memcached protocol for server implementation
https://github.com/rpcxio/gomemcached
golang memcached memcached-server
Last synced: 4 months ago
JSON representation
memcached protocol for server implementation
- Host: GitHub
- URL: https://github.com/rpcxio/gomemcached
- Owner: rpcxio
- License: mit
- Created: 2020-02-23T14:22:06.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-01-04T07:39:00.000Z (over 4 years ago)
- Last Synced: 2025-04-24T01:41:32.169Z (about 1 year ago)
- Topics: golang, memcached, memcached-server
- Language: Go
- Size: 17.6 KB
- Stars: 15
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gomemcached
Memcached protocol implementation for memcached server.
You can use it to create a memcached server easily.
[](https://opensource.org/licenses/MIT) [](http://godoc.org/github.com/rpcxio/gomemcached) [](https://travis-ci.org/smallnest/gomemcached) [](https://goreportcard.com/report/github.com/rpcxio/gomemcached) [](https://coveralls.io/github/smallnest/gomemcached?branch=master)
import this lib:
```sh
go get -u github.com/rpcxio/gomemcached
```
And register handlers.
```go
addr := "127.0.0.1:" + strconv.Itoa(port)
// or use unix domain socket, like:
// addr := "unix:///tmp/memcached.sock"
mockServer := NewServer(addr)
mockServer.RegisterFunc("get", DefaultGet)
mockServer.RegisterFunc("gets", DefaultGet)
mockServer.RegisterFunc("set", DefaultSet)
mockServer.RegisterFunc("delete", DefaultDelete)
mockServer.RegisterFunc("incr", DefaultIncr)
mockServer.RegisterFunc("flush_all", DefaultFlushAll)
mockServer.RegisterFunc("version", DefaultVersion)
mockServer.Start()
```
This project refers to the below projects:
- [luxuan/go-memcached-server](https://github.com/luxuan/go-memcached-server)
- [zobo/mrproxy](https://github.com/zobo/mrproxy)
I added more implementation and fix some issues, for example, panic on reading long value. I also add `Context` in handlers so that we can pass more info to handlers.