// CreateCacheAlgol creates the cache algorithm implementation
func (this *CacheBuilderImpl) CreateCacheAlgol(cacheType string, limit int) (memcache.Cache, error) {
	switch cacheType {
	case LRUCache:
		return memcache.CreateLRUCache(limit), nil
	case Empty:
		return nil, errors.New("You need to specify a cache strategy")
	default:
		return nil, errors.New("Unknown cache strategy")
	}
}
package main

import (
	"fmt"
	"github.com/seanjohnno/memcache"
	"io/ioutil"
	"net/http"
)

var (
	Cache    = memcache.CreateLRUCache(1024 * 4)
	Resource = "https://raw.githubusercontent.com/seanjohnno/goexamples/master/helloworld.txt"
)

func main() {
	fileContent, _ := GetHttpData(Resource)
	fmt.Println("Content:", string(fileContent))

	fileContent, _ = GetHttpData(Resource)
	fmt.Println("Content:", string(fileContent))
}

type HttpContent struct {
	Content []byte
}

func (this *HttpContent) Size() int {
	return len(this.Content)
}

func GetHttpData(URI string) ([]byte, error) {