package redis import ( "encoding/json" "github.com/pkg/errors" ) type RedisBatchCommands struct { Commands [][]interface{} } func NewRedisBatchCommands() *RedisBatchCommands { result := RedisBatchCommands{} result.Commands = make([][]interface{}, 0) return &result } func (rbc *RedisBatchCommands) Add(command ...interface{}) { rbc.Commands = append(rbc.Commands, command) } func (rbc *RedisBatchCommands) AddPublish(key string, message interface{}) error { data, err := json.Marshal(message) if err != nil { return errors.WithStack(err) } rbc.Add("PUBLISH", ChannelKey(key), data) return nil } func (rbc *RedisBatchCommands) IsEmpty() bool { return len(rbc.Commands) == 0 } func (rbc *RedisBatchCommands) Clear() { rbc.Commands = make([][]interface{}, 0) }