Skip to content

bradberger/memcached

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Memcache Server

A Go implementation of the memcached protocol, designed to be easy to switch storage mechanisms depending on your specific needs.

Usage

import (
  "log"

  "github.com/bradberger/memcached"
)

func main() {
  log.Fatal(memcached.ListenAndServe(":11211"))
}

Configuration

You can configure the storage engine, the listening address, and the logging interface. The server currently implements a subset of the memcached protocol. The extent to which it implements all the storage methods are dependent on the storage engine you choose. (I'll add details about what this means in the future)

import (
  "log"

  "github.com/bradberger/memcached"
  "github.com/bradberger/gocache/drivers/lru"
)

func main() {

  srv := &memcached.Server{
    // Set the cache engine.
    // Must implement "github.com/bradberger/gocache/cache.Cache" interface.
    Cache:  lru.NewBasic(lru.Gigabyte, 100000),
    // Set the logger.
    // Must implement "github.com/bradberger/memcached".Logger interface.
    Logger: logger.Init("Memcached", true, false, os.Stdout),
    // Set the listen address. Default is :11211
    Addr:   ":11211",
  }

  log.Fatal(srv.ListenAndServe())
}

TODO

  • increment command support
  • decrement command support
  • touch command support
  • [-] append command support
  • [-] prepend command support
  • gat command support
  • gats command support
  • cas command support
  • UDP support
  • Binary protocol support
  • handle noreply properly

Releases

No releases published

Packages

No packages published

Languages