package commands import ( "errors" "redisClone/pkg/core" "time" ) func Get(args []string, getShard func(k string) *core.Shard) interface{} { key := args[1] s := getShard(key) item, exists := s.Data[key] if !exists { return nil } if item.ExpiresAt != nil && time.Now().After(*item.ExpiresAt) { delete(s.Data, key) return nil } strValue, ok := item.Value.(string) if !ok { err := errors.New("WRONGTYPE Operation against a key holding the wrong kind of value") return err } return strValue }