```go
import "github.com/couchbaselabs/gomemcache"

func main() {
var kv = make(map[string]string)
memcached, _ := gomemcache.New("localhost:11211")
cache := &Cache{memcached, kv}
fmt.Println("cache get first time...")
_, ok := cache.get("hello", true)
if !ok {
    fmt.Printf("%s not exists\n", "hello")
} else {
    fmt.Printf("%s found from cache\n", "hello")
}

fmt.Println("set hello world...")
err := cache.set(&User{"hello", []int64{}, ""})
!= nil {
    panic(err)
}

fmt.Println("cache second time get with same user id...")
u, ok := cache.get("hello_world", false)
if !ok || u.Id != 5018339761 {
    fmt.Println("not equal", string(*u))
}

fmtcache third time for unknown userid...")
u, ok = cache.get("unknown_user", true)
if !ok {
    fmt.Printf("%d doesn't exist in the cache or server.\n", *u.Id)
} else if len(u.Friends) == 0 {
    fmt.Println("%d has no friend listed.", *u.Id)
} else {
    fmt.Printf("\nfriend list of %d:\n%v\n", *u.Id, u.Friends)
}
}

type User struct {
Name string json:"name"
Age int    json:"age"
// we can also define tag here to control expiration date and whether it should be retrieved each time when its needed always fetching from server when used as a method arg
// Friends []string gosmemcache:"friends"
}

type Cache struct {
client   *MemcacheClient
valueMap map[string]interface{}        // Get returns value associated with given key
func (this *Cache) Get(key string,User, error) {
userVal := this.GetValue(key)
if userVal == nil && cached==false {
return nil,nil
}else if userVal!=nil && cached==true{
fmt.Println("data from mem cache", string(*userVal))
if val,ok:=userVal.(map[string]interface{});ok{
var u *User;
json.Unmarshal(([]byte)(val["data"]),&u)
fmt.Println(u)
}
return userVal,nil
}
// retrieve data from server
res, err := http.Get(apiUrl + "/strconv.FormatInt(this.GetUserID(key)+1, 10))
if err != nil {
logrus.Fatal(err)
}
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence