package commands import ( "errors" "redisClone/pkg/core" ) func Hset(args []string, getShard func(k string) *core.Shard) interface{} { if (len(args)-2)%2 != 0 { return errors.New("wrong number of arguments for 'HSET'") } key := args[1] s := getShard(key) item, exists := s.Data[key] var hash map[string]string if exists { var ok bool hash, ok = item.Value.(map[string]string) if !ok { return errors.New("WRONGTYPE Operation against a key holding the wrong kind of value") } } else { hash = make(map[string]string) } count := 0 for i := 2; i < len(args); i += 2 { hash[args[i]] = args[i+1] count++ } s.Data[key] = core.Item{Value: hash} return count }