// Author: simon (ynwdlxm@163.com) // Date: 2025/5/26 13:51 // Desc: package reply // PongReply 表示PONG响应,用于Redis协议的PONG响应 type PongReply struct{} func (p PongReply) String() string { return "+PONG\r\n" } // ToBytes 将PONG响应转换为字节数组 // 返回格式:"+PONG\r\n" func (p PongReply) ToBytes() []byte { return []byte("+PONG\r\n") } // NewPongReply 创建新的PongReply实例 func NewPongReply() *PongReply { return &PongReply{} } // OkReply 表示OK响应,用于Redis协议的OK响应 // 返回格式:"+OK\r\n" type OkReply struct{} func (o OkReply) String() string { return "+OK\r\n" } // ToBytes 将OK响应转换为字节数组 // 返回格式:"+OK\r\n" func (o OkReply) ToBytes() []byte { return []byte("+OK\r\n") } // NewOkReply 创建新的OkReply实例 func NewOkReply() *OkReply { return &OkReply{} } // NoReply 表示NO响应,用于Redis协议的NO响应 type NoReply struct{} func (n NoReply) String() string { return "" } // ToBytes 将NO响应转换为字节数组 func (n NoReply) ToBytes() []byte { return []byte("") } // NewNoReply 创建新的NoReply实例 func NewNoReply() *NoReply { return &NoReply{} } // NullBulkReply 表示NULL响应,用于Redis协议的NULL响应 // 返回格式:"$-1\r\n" type NullBulkReply struct{} func (n NullBulkReply) String() string { return "$-1\r\n" } // ToBytes 将NULL响应转换为字节数组 // 返回格式:"$-1\r\n" func (n NullBulkReply) ToBytes() []byte { return []byte("$-1\r\n") } func NewNullBulkReply() *NullBulkReply { return &NullBulkReply{} } // EmptyMultiBulkReply 表示空的多批量回复,用于Redis协议的空的多批量回复(空数组) // 返回格式:"*0\r\n" type EmptyMultiBulkReply struct{} func (e EmptyMultiBulkReply) String() string { return "*0\r\n" } // ToBytes 将空的多批量回复转换为字节数组 func (e EmptyMultiBulkReply) ToBytes() []byte { return []byte("*0\r\n") } func NewEmptyMultiBulkReply() *EmptyMultiBulkReply { return &EmptyMultiBulkReply{} } // IsOkReply 判断回复是否为OK响应 func IsOkReply(reply interface{}) bool { _, ok := reply.(*OkReply) return ok }