diff --git a/pkg/proto/listx.pb.go b/pkg/proto/listx.pb.go
index d4753e0..93182de 100644
--- a/pkg/proto/listx.pb.go
+++ b/pkg/proto/listx.pb.go
@@ -20,7 +20,7 @@ const (
 	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 )
 
-type LindexRequest struct {
+type LIndexRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -29,8 +29,8 @@ type LindexRequest struct {
 	Index int32    `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
 }
 
-func (x *LindexRequest) Reset() {
-	*x = LindexRequest{}
+func (x *LIndexRequest) Reset() {
+	*x = LIndexRequest{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[0]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -38,13 +38,13 @@ func (x *LindexRequest) Reset() {
 	}
 }
 
-func (x *LindexRequest) String() string {
+func (x *LIndexRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LindexRequest) ProtoMessage() {}
+func (*LIndexRequest) ProtoMessage() {}
 
-func (x *LindexRequest) ProtoReflect() protoreflect.Message {
+func (x *LIndexRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[0]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -56,26 +56,26 @@ func (x *LindexRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LindexRequest.ProtoReflect.Descriptor instead.
-func (*LindexRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use LIndexRequest.ProtoReflect.Descriptor instead.
+func (*LIndexRequest) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{0}
 }
 
-func (x *LindexRequest) GetKey() *BaseKey {
+func (x *LIndexRequest) GetKey() *BaseKey {
 	if x != nil {
 		return x.Key
 	}
 	return nil
 }
 
-func (x *LindexRequest) GetIndex() int32 {
+func (x *LIndexRequest) GetIndex() int32 {
 	if x != nil {
 		return x.Index
 	}
 	return 0
 }
 
-type LindexResponse struct {
+type LIndexResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -83,8 +83,8 @@ type LindexResponse struct {
 	Result string `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
 }
 
-func (x *LindexResponse) Reset() {
-	*x = LindexResponse{}
+func (x *LIndexResponse) Reset() {
+	*x = LIndexResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[1]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -92,13 +92,13 @@ func (x *LindexResponse) Reset() {
 	}
 }
 
-func (x *LindexResponse) String() string {
+func (x *LIndexResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LindexResponse) ProtoMessage() {}
+func (*LIndexResponse) ProtoMessage() {}
 
-func (x *LindexResponse) ProtoReflect() protoreflect.Message {
+func (x *LIndexResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[1]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -110,19 +110,19 @@ func (x *LindexResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LindexResponse.ProtoReflect.Descriptor instead.
-func (*LindexResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use LIndexResponse.ProtoReflect.Descriptor instead.
+func (*LIndexResponse) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{1}
 }
 
-func (x *LindexResponse) GetResult() string {
+func (x *LIndexResponse) GetResult() string {
 	if x != nil {
 		return x.Result
 	}
 	return ""
 }
 
-type LlenRequest struct {
+type LLenRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -130,8 +130,8 @@ type LlenRequest struct {
 	Key *BaseKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
 }
 
-func (x *LlenRequest) Reset() {
-	*x = LlenRequest{}
+func (x *LLenRequest) Reset() {
+	*x = LLenRequest{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[2]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -139,13 +139,13 @@ func (x *LlenRequest) Reset() {
 	}
 }
 
-func (x *LlenRequest) String() string {
+func (x *LLenRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LlenRequest) ProtoMessage() {}
+func (*LLenRequest) ProtoMessage() {}
 
-func (x *LlenRequest) ProtoReflect() protoreflect.Message {
+func (x *LLenRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[2]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -157,19 +157,19 @@ func (x *LlenRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LlenRequest.ProtoReflect.Descriptor instead.
-func (*LlenRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use LLenRequest.ProtoReflect.Descriptor instead.
+func (*LLenRequest) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{2}
 }
 
-func (x *LlenRequest) GetKey() *BaseKey {
+func (x *LLenRequest) GetKey() *BaseKey {
 	if x != nil {
 		return x.Key
 	}
 	return nil
 }
 
-type LlenResponse struct {
+type LLenResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -177,8 +177,8 @@ type LlenResponse struct {
 	Length int32 `protobuf:"varint,1,opt,name=length,proto3" json:"length,omitempty"`
 }
 
-func (x *LlenResponse) Reset() {
-	*x = LlenResponse{}
+func (x *LLenResponse) Reset() {
+	*x = LLenResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[3]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -186,13 +186,13 @@ func (x *LlenResponse) Reset() {
 	}
 }
 
-func (x *LlenResponse) String() string {
+func (x *LLenResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LlenResponse) ProtoMessage() {}
+func (*LLenResponse) ProtoMessage() {}
 
-func (x *LlenResponse) ProtoReflect() protoreflect.Message {
+func (x *LLenResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[3]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -204,19 +204,19 @@ func (x *LlenResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LlenResponse.ProtoReflect.Descriptor instead.
-func (*LlenResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use LLenResponse.ProtoReflect.Descriptor instead.
+func (*LLenResponse) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{3}
 }
 
-func (x *LlenResponse) GetLength() int32 {
+func (x *LLenResponse) GetLength() int32 {
 	if x != nil {
 		return x.Length
 	}
 	return 0
 }
 
-type LpopRequest struct {
+type LPopRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -225,8 +225,8 @@ type LpopRequest struct {
 	Count int32    `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
 }
 
-func (x *LpopRequest) Reset() {
-	*x = LpopRequest{}
+func (x *LPopRequest) Reset() {
+	*x = LPopRequest{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[4]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -234,13 +234,13 @@ func (x *LpopRequest) Reset() {
 	}
 }
 
-func (x *LpopRequest) String() string {
+func (x *LPopRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LpopRequest) ProtoMessage() {}
+func (*LPopRequest) ProtoMessage() {}
 
-func (x *LpopRequest) ProtoReflect() protoreflect.Message {
+func (x *LPopRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[4]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -252,26 +252,26 @@ func (x *LpopRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LpopRequest.ProtoReflect.Descriptor instead.
-func (*LpopRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use LPopRequest.ProtoReflect.Descriptor instead.
+func (*LPopRequest) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{4}
 }
 
-func (x *LpopRequest) GetKey() *BaseKey {
+func (x *LPopRequest) GetKey() *BaseKey {
 	if x != nil {
 		return x.Key
 	}
 	return nil
 }
 
-func (x *LpopRequest) GetCount() int32 {
+func (x *LPopRequest) GetCount() int32 {
 	if x != nil {
 		return x.Count
 	}
 	return 0
 }
 
-type LpopResponse struct {
+type LPopResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -279,8 +279,8 @@ type LpopResponse struct {
 	Results []string `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
 }
 
-func (x *LpopResponse) Reset() {
-	*x = LpopResponse{}
+func (x *LPopResponse) Reset() {
+	*x = LPopResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[5]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -288,13 +288,13 @@ func (x *LpopResponse) Reset() {
 	}
 }
 
-func (x *LpopResponse) String() string {
+func (x *LPopResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LpopResponse) ProtoMessage() {}
+func (*LPopResponse) ProtoMessage() {}
 
-func (x *LpopResponse) ProtoReflect() protoreflect.Message {
+func (x *LPopResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[5]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -306,19 +306,19 @@ func (x *LpopResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LpopResponse.ProtoReflect.Descriptor instead.
-func (*LpopResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use LPopResponse.ProtoReflect.Descriptor instead.
+func (*LPopResponse) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{5}
 }
 
-func (x *LpopResponse) GetResults() []string {
+func (x *LPopResponse) GetResults() []string {
 	if x != nil {
 		return x.Results
 	}
 	return nil
 }
 
-type LpushRequest struct {
+type LPushRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -327,8 +327,8 @@ type LpushRequest struct {
 	Values []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
 }
 
-func (x *LpushRequest) Reset() {
-	*x = LpushRequest{}
+func (x *LPushRequest) Reset() {
+	*x = LPushRequest{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[6]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -336,13 +336,13 @@ func (x *LpushRequest) Reset() {
 	}
 }
 
-func (x *LpushRequest) String() string {
+func (x *LPushRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LpushRequest) ProtoMessage() {}
+func (*LPushRequest) ProtoMessage() {}
 
-func (x *LpushRequest) ProtoReflect() protoreflect.Message {
+func (x *LPushRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[6]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -354,33 +354,33 @@ func (x *LpushRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LpushRequest.ProtoReflect.Descriptor instead.
-func (*LpushRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use LPushRequest.ProtoReflect.Descriptor instead.
+func (*LPushRequest) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{6}
 }
 
-func (x *LpushRequest) GetKey() *BaseKey {
+func (x *LPushRequest) GetKey() *BaseKey {
 	if x != nil {
 		return x.Key
 	}
 	return nil
 }
 
-func (x *LpushRequest) GetValues() []string {
+func (x *LPushRequest) GetValues() []string {
 	if x != nil {
 		return x.Values
 	}
 	return nil
 }
 
-type LpushResponse struct {
+type LPushResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 }
 
-func (x *LpushResponse) Reset() {
-	*x = LpushResponse{}
+func (x *LPushResponse) Reset() {
+	*x = LPushResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[7]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -388,13 +388,13 @@ func (x *LpushResponse) Reset() {
 	}
 }
 
-func (x *LpushResponse) String() string {
+func (x *LPushResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LpushResponse) ProtoMessage() {}
+func (*LPushResponse) ProtoMessage() {}
 
-func (x *LpushResponse) ProtoReflect() protoreflect.Message {
+func (x *LPushResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[7]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -406,12 +406,12 @@ func (x *LpushResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LpushResponse.ProtoReflect.Descriptor instead.
-func (*LpushResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use LPushResponse.ProtoReflect.Descriptor instead.
+func (*LPushResponse) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{7}
 }
 
-type LpushxRequest struct {
+type LPushXRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -420,8 +420,8 @@ type LpushxRequest struct {
 	Values []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
 }
 
-func (x *LpushxRequest) Reset() {
-	*x = LpushxRequest{}
+func (x *LPushXRequest) Reset() {
+	*x = LPushXRequest{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[8]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -429,13 +429,13 @@ func (x *LpushxRequest) Reset() {
 	}
 }
 
-func (x *LpushxRequest) String() string {
+func (x *LPushXRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LpushxRequest) ProtoMessage() {}
+func (*LPushXRequest) ProtoMessage() {}
 
-func (x *LpushxRequest) ProtoReflect() protoreflect.Message {
+func (x *LPushXRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[8]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -447,33 +447,33 @@ func (x *LpushxRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LpushxRequest.ProtoReflect.Descriptor instead.
-func (*LpushxRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use LPushXRequest.ProtoReflect.Descriptor instead.
+func (*LPushXRequest) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{8}
 }
 
-func (x *LpushxRequest) GetKey() *BaseKey {
+func (x *LPushXRequest) GetKey() *BaseKey {
 	if x != nil {
 		return x.Key
 	}
 	return nil
 }
 
-func (x *LpushxRequest) GetValues() []string {
+func (x *LPushXRequest) GetValues() []string {
 	if x != nil {
 		return x.Values
 	}
 	return nil
 }
 
-type LpushxResponse struct {
+type LPushXResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 }
 
-func (x *LpushxResponse) Reset() {
-	*x = LpushxResponse{}
+func (x *LPushXResponse) Reset() {
+	*x = LPushXResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[9]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -481,13 +481,13 @@ func (x *LpushxResponse) Reset() {
 	}
 }
 
-func (x *LpushxResponse) String() string {
+func (x *LPushXResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LpushxResponse) ProtoMessage() {}
+func (*LPushXResponse) ProtoMessage() {}
 
-func (x *LpushxResponse) ProtoReflect() protoreflect.Message {
+func (x *LPushXResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[9]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -499,12 +499,12 @@ func (x *LpushxResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LpushxResponse.ProtoReflect.Descriptor instead.
-func (*LpushxResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use LPushXResponse.ProtoReflect.Descriptor instead.
+func (*LPushXResponse) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{9}
 }
 
-type LrangeRequest struct {
+type LRangeRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -514,8 +514,8 @@ type LrangeRequest struct {
 	End   int32    `protobuf:"varint,3,opt,name=end,proto3" json:"end,omitempty"`
 }
 
-func (x *LrangeRequest) Reset() {
-	*x = LrangeRequest{}
+func (x *LRangeRequest) Reset() {
+	*x = LRangeRequest{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[10]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -523,13 +523,13 @@ func (x *LrangeRequest) Reset() {
 	}
 }
 
-func (x *LrangeRequest) String() string {
+func (x *LRangeRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LrangeRequest) ProtoMessage() {}
+func (*LRangeRequest) ProtoMessage() {}
 
-func (x *LrangeRequest) ProtoReflect() protoreflect.Message {
+func (x *LRangeRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[10]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -541,33 +541,33 @@ func (x *LrangeRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LrangeRequest.ProtoReflect.Descriptor instead.
-func (*LrangeRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use LRangeRequest.ProtoReflect.Descriptor instead.
+func (*LRangeRequest) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{10}
 }
 
-func (x *LrangeRequest) GetKey() *BaseKey {
+func (x *LRangeRequest) GetKey() *BaseKey {
 	if x != nil {
 		return x.Key
 	}
 	return nil
 }
 
-func (x *LrangeRequest) GetStart() int32 {
+func (x *LRangeRequest) GetStart() int32 {
 	if x != nil {
 		return x.Start
 	}
 	return 0
 }
 
-func (x *LrangeRequest) GetEnd() int32 {
+func (x *LRangeRequest) GetEnd() int32 {
 	if x != nil {
 		return x.End
 	}
 	return 0
 }
 
-type LrangeResponse struct {
+type LRangeResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -575,8 +575,8 @@ type LrangeResponse struct {
 	Values []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
 }
 
-func (x *LrangeResponse) Reset() {
-	*x = LrangeResponse{}
+func (x *LRangeResponse) Reset() {
+	*x = LRangeResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[11]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -584,13 +584,13 @@ func (x *LrangeResponse) Reset() {
 	}
 }
 
-func (x *LrangeResponse) String() string {
+func (x *LRangeResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LrangeResponse) ProtoMessage() {}
+func (*LRangeResponse) ProtoMessage() {}
 
-func (x *LrangeResponse) ProtoReflect() protoreflect.Message {
+func (x *LRangeResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[11]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -602,19 +602,19 @@ func (x *LrangeResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LrangeResponse.ProtoReflect.Descriptor instead.
-func (*LrangeResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use LRangeResponse.ProtoReflect.Descriptor instead.
+func (*LRangeResponse) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{11}
 }
 
-func (x *LrangeResponse) GetValues() []string {
+func (x *LRangeResponse) GetValues() []string {
 	if x != nil {
 		return x.Values
 	}
 	return nil
 }
 
-type LremRequest struct {
+type LRemRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -625,8 +625,8 @@ type LremRequest struct {
 	Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
 }
 
-func (x *LremRequest) Reset() {
-	*x = LremRequest{}
+func (x *LRemRequest) Reset() {
+	*x = LRemRequest{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[12]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -634,13 +634,13 @@ func (x *LremRequest) Reset() {
 	}
 }
 
-func (x *LremRequest) String() string {
+func (x *LRemRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LremRequest) ProtoMessage() {}
+func (*LRemRequest) ProtoMessage() {}
 
-func (x *LremRequest) ProtoReflect() protoreflect.Message {
+func (x *LRemRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[12]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -652,33 +652,33 @@ func (x *LremRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LremRequest.ProtoReflect.Descriptor instead.
-func (*LremRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use LRemRequest.ProtoReflect.Descriptor instead.
+func (*LRemRequest) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{12}
 }
 
-func (x *LremRequest) GetKey() *BaseKey {
+func (x *LRemRequest) GetKey() *BaseKey {
 	if x != nil {
 		return x.Key
 	}
 	return nil
 }
 
-func (x *LremRequest) GetCount() int32 {
+func (x *LRemRequest) GetCount() int32 {
 	if x != nil {
 		return x.Count
 	}
 	return 0
 }
 
-func (x *LremRequest) GetValue() string {
+func (x *LRemRequest) GetValue() string {
 	if x != nil {
 		return x.Value
 	}
 	return ""
 }
 
-type LremResponse struct {
+type LRemResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -686,8 +686,8 @@ type LremResponse struct {
 	Count int32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
 }
 
-func (x *LremResponse) Reset() {
-	*x = LremResponse{}
+func (x *LRemResponse) Reset() {
+	*x = LRemResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[13]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -695,13 +695,13 @@ func (x *LremResponse) Reset() {
 	}
 }
 
-func (x *LremResponse) String() string {
+func (x *LRemResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LremResponse) ProtoMessage() {}
+func (*LRemResponse) ProtoMessage() {}
 
-func (x *LremResponse) ProtoReflect() protoreflect.Message {
+func (x *LRemResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[13]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -713,19 +713,19 @@ func (x *LremResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LremResponse.ProtoReflect.Descriptor instead.
-func (*LremResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use LRemResponse.ProtoReflect.Descriptor instead.
+func (*LRemResponse) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{13}
 }
 
-func (x *LremResponse) GetCount() int32 {
+func (x *LRemResponse) GetCount() int32 {
 	if x != nil {
 		return x.Count
 	}
 	return 0
 }
 
-type LsetRequest struct {
+type LSetRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -735,8 +735,8 @@ type LsetRequest struct {
 	Value string   `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
 }
 
-func (x *LsetRequest) Reset() {
-	*x = LsetRequest{}
+func (x *LSetRequest) Reset() {
+	*x = LSetRequest{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[14]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -744,13 +744,13 @@ func (x *LsetRequest) Reset() {
 	}
 }
 
-func (x *LsetRequest) String() string {
+func (x *LSetRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LsetRequest) ProtoMessage() {}
+func (*LSetRequest) ProtoMessage() {}
 
-func (x *LsetRequest) ProtoReflect() protoreflect.Message {
+func (x *LSetRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[14]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -762,40 +762,40 @@ func (x *LsetRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LsetRequest.ProtoReflect.Descriptor instead.
-func (*LsetRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use LSetRequest.ProtoReflect.Descriptor instead.
+func (*LSetRequest) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{14}
 }
 
-func (x *LsetRequest) GetKey() *BaseKey {
+func (x *LSetRequest) GetKey() *BaseKey {
 	if x != nil {
 		return x.Key
 	}
 	return nil
 }
 
-func (x *LsetRequest) GetIndex() int32 {
+func (x *LSetRequest) GetIndex() int32 {
 	if x != nil {
 		return x.Index
 	}
 	return 0
 }
 
-func (x *LsetRequest) GetValue() string {
+func (x *LSetRequest) GetValue() string {
 	if x != nil {
 		return x.Value
 	}
 	return ""
 }
 
-type LsetResponse struct {
+type LSetResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 }
 
-func (x *LsetResponse) Reset() {
-	*x = LsetResponse{}
+func (x *LSetResponse) Reset() {
+	*x = LSetResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[15]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -803,13 +803,13 @@ func (x *LsetResponse) Reset() {
 	}
 }
 
-func (x *LsetResponse) String() string {
+func (x *LSetResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LsetResponse) ProtoMessage() {}
+func (*LSetResponse) ProtoMessage() {}
 
-func (x *LsetResponse) ProtoReflect() protoreflect.Message {
+func (x *LSetResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[15]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -821,12 +821,12 @@ func (x *LsetResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LsetResponse.ProtoReflect.Descriptor instead.
-func (*LsetResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use LSetResponse.ProtoReflect.Descriptor instead.
+func (*LSetResponse) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{15}
 }
 
-type RpopRequest struct {
+type RPopRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -835,8 +835,8 @@ type RpopRequest struct {
 	Count int32    `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
 }
 
-func (x *RpopRequest) Reset() {
-	*x = RpopRequest{}
+func (x *RPopRequest) Reset() {
+	*x = RPopRequest{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[16]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -844,13 +844,13 @@ func (x *RpopRequest) Reset() {
 	}
 }
 
-func (x *RpopRequest) String() string {
+func (x *RPopRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*RpopRequest) ProtoMessage() {}
+func (*RPopRequest) ProtoMessage() {}
 
-func (x *RpopRequest) ProtoReflect() protoreflect.Message {
+func (x *RPopRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[16]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -862,26 +862,26 @@ func (x *RpopRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use RpopRequest.ProtoReflect.Descriptor instead.
-func (*RpopRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use RPopRequest.ProtoReflect.Descriptor instead.
+func (*RPopRequest) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{16}
 }
 
-func (x *RpopRequest) GetKey() *BaseKey {
+func (x *RPopRequest) GetKey() *BaseKey {
 	if x != nil {
 		return x.Key
 	}
 	return nil
 }
 
-func (x *RpopRequest) GetCount() int32 {
+func (x *RPopRequest) GetCount() int32 {
 	if x != nil {
 		return x.Count
 	}
 	return 0
 }
 
-type RpopResponse struct {
+type RPopResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -889,8 +889,8 @@ type RpopResponse struct {
 	Result []string `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"`
 }
 
-func (x *RpopResponse) Reset() {
-	*x = RpopResponse{}
+func (x *RPopResponse) Reset() {
+	*x = RPopResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[17]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -898,13 +898,13 @@ func (x *RpopResponse) Reset() {
 	}
 }
 
-func (x *RpopResponse) String() string {
+func (x *RPopResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*RpopResponse) ProtoMessage() {}
+func (*RPopResponse) ProtoMessage() {}
 
-func (x *RpopResponse) ProtoReflect() protoreflect.Message {
+func (x *RPopResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[17]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -916,19 +916,19 @@ func (x *RpopResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use RpopResponse.ProtoReflect.Descriptor instead.
-func (*RpopResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use RPopResponse.ProtoReflect.Descriptor instead.
+func (*RPopResponse) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{17}
 }
 
-func (x *RpopResponse) GetResult() []string {
+func (x *RPopResponse) GetResult() []string {
 	if x != nil {
 		return x.Result
 	}
 	return nil
 }
 
-type LtrimRequest struct {
+type LTrimRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -938,8 +938,8 @@ type LtrimRequest struct {
 	End   int32    `protobuf:"varint,3,opt,name=end,proto3" json:"end,omitempty"`
 }
 
-func (x *LtrimRequest) Reset() {
-	*x = LtrimRequest{}
+func (x *LTrimRequest) Reset() {
+	*x = LTrimRequest{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[18]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -947,13 +947,13 @@ func (x *LtrimRequest) Reset() {
 	}
 }
 
-func (x *LtrimRequest) String() string {
+func (x *LTrimRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LtrimRequest) ProtoMessage() {}
+func (*LTrimRequest) ProtoMessage() {}
 
-func (x *LtrimRequest) ProtoReflect() protoreflect.Message {
+func (x *LTrimRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[18]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -965,40 +965,40 @@ func (x *LtrimRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LtrimRequest.ProtoReflect.Descriptor instead.
-func (*LtrimRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use LTrimRequest.ProtoReflect.Descriptor instead.
+func (*LTrimRequest) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{18}
 }
 
-func (x *LtrimRequest) GetKey() *BaseKey {
+func (x *LTrimRequest) GetKey() *BaseKey {
 	if x != nil {
 		return x.Key
 	}
 	return nil
 }
 
-func (x *LtrimRequest) GetStart() int32 {
+func (x *LTrimRequest) GetStart() int32 {
 	if x != nil {
 		return x.Start
 	}
 	return 0
 }
 
-func (x *LtrimRequest) GetEnd() int32 {
+func (x *LTrimRequest) GetEnd() int32 {
 	if x != nil {
 		return x.End
 	}
 	return 0
 }
 
-type LtrimResponse struct {
+type LTrimResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 }
 
-func (x *LtrimResponse) Reset() {
-	*x = LtrimResponse{}
+func (x *LTrimResponse) Reset() {
+	*x = LTrimResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[19]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1006,13 +1006,13 @@ func (x *LtrimResponse) Reset() {
 	}
 }
 
-func (x *LtrimResponse) String() string {
+func (x *LTrimResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*LtrimResponse) ProtoMessage() {}
+func (*LTrimResponse) ProtoMessage() {}
 
-func (x *LtrimResponse) ProtoReflect() protoreflect.Message {
+func (x *LTrimResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[19]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1024,12 +1024,12 @@ func (x *LtrimResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use LtrimResponse.ProtoReflect.Descriptor instead.
-func (*LtrimResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use LTrimResponse.ProtoReflect.Descriptor instead.
+func (*LTrimResponse) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{19}
 }
 
-type RpushRequest struct {
+type RPushRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -1038,8 +1038,8 @@ type RpushRequest struct {
 	Values []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
 }
 
-func (x *RpushRequest) Reset() {
-	*x = RpushRequest{}
+func (x *RPushRequest) Reset() {
+	*x = RPushRequest{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[20]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1047,13 +1047,13 @@ func (x *RpushRequest) Reset() {
 	}
 }
 
-func (x *RpushRequest) String() string {
+func (x *RPushRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*RpushRequest) ProtoMessage() {}
+func (*RPushRequest) ProtoMessage() {}
 
-func (x *RpushRequest) ProtoReflect() protoreflect.Message {
+func (x *RPushRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[20]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1065,33 +1065,33 @@ func (x *RpushRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use RpushRequest.ProtoReflect.Descriptor instead.
-func (*RpushRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use RPushRequest.ProtoReflect.Descriptor instead.
+func (*RPushRequest) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{20}
 }
 
-func (x *RpushRequest) GetKey() *BaseKey {
+func (x *RPushRequest) GetKey() *BaseKey {
 	if x != nil {
 		return x.Key
 	}
 	return nil
 }
 
-func (x *RpushRequest) GetValues() []string {
+func (x *RPushRequest) GetValues() []string {
 	if x != nil {
 		return x.Values
 	}
 	return nil
 }
 
-type RpushResponse struct {
+type RPushResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 }
 
-func (x *RpushResponse) Reset() {
-	*x = RpushResponse{}
+func (x *RPushResponse) Reset() {
+	*x = RPushResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[21]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1099,13 +1099,13 @@ func (x *RpushResponse) Reset() {
 	}
 }
 
-func (x *RpushResponse) String() string {
+func (x *RPushResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*RpushResponse) ProtoMessage() {}
+func (*RPushResponse) ProtoMessage() {}
 
-func (x *RpushResponse) ProtoReflect() protoreflect.Message {
+func (x *RPushResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[21]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1117,12 +1117,12 @@ func (x *RpushResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use RpushResponse.ProtoReflect.Descriptor instead.
-func (*RpushResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use RPushResponse.ProtoReflect.Descriptor instead.
+func (*RPushResponse) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{21}
 }
 
-type RpushxRequest struct {
+type RPushXRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
@@ -1131,8 +1131,8 @@ type RpushxRequest struct {
 	Values []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
 }
 
-func (x *RpushxRequest) Reset() {
-	*x = RpushxRequest{}
+func (x *RPushXRequest) Reset() {
+	*x = RPushXRequest{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[22]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1140,13 +1140,13 @@ func (x *RpushxRequest) Reset() {
 	}
 }
 
-func (x *RpushxRequest) String() string {
+func (x *RPushXRequest) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*RpushxRequest) ProtoMessage() {}
+func (*RPushXRequest) ProtoMessage() {}
 
-func (x *RpushxRequest) ProtoReflect() protoreflect.Message {
+func (x *RPushXRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[22]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1158,33 +1158,33 @@ func (x *RpushxRequest) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use RpushxRequest.ProtoReflect.Descriptor instead.
-func (*RpushxRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use RPushXRequest.ProtoReflect.Descriptor instead.
+func (*RPushXRequest) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{22}
 }
 
-func (x *RpushxRequest) GetKey() *BaseKey {
+func (x *RPushXRequest) GetKey() *BaseKey {
 	if x != nil {
 		return x.Key
 	}
 	return nil
 }
 
-func (x *RpushxRequest) GetValues() []string {
+func (x *RPushXRequest) GetValues() []string {
 	if x != nil {
 		return x.Values
 	}
 	return nil
 }
 
-type RpushxResponse struct {
+type RPushXResponse struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 }
 
-func (x *RpushxResponse) Reset() {
-	*x = RpushxResponse{}
+func (x *RPushXResponse) Reset() {
+	*x = RPushXResponse{}
 	if protoimpl.UnsafeEnabled {
 		mi := &file_listx_proto_msgTypes[23]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1192,13 +1192,13 @@ func (x *RpushxResponse) Reset() {
 	}
 }
 
-func (x *RpushxResponse) String() string {
+func (x *RPushXResponse) String() string {
 	return protoimpl.X.MessageStringOf(x)
 }
 
-func (*RpushxResponse) ProtoMessage() {}
+func (*RPushXResponse) ProtoMessage() {}
 
-func (x *RpushxResponse) ProtoReflect() protoreflect.Message {
+func (x *RPushXResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_listx_proto_msgTypes[23]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1210,8 +1210,8 @@ func (x *RpushxResponse) ProtoReflect() protoreflect.Message {
 	return mi.MessageOf(x)
 }
 
-// Deprecated: Use RpushxResponse.ProtoReflect.Descriptor instead.
-func (*RpushxResponse) Descriptor() ([]byte, []int) {
+// Deprecated: Use RPushXResponse.ProtoReflect.Descriptor instead.
+func (*RPushXResponse) Descriptor() ([]byte, []int) {
 	return file_listx_proto_rawDescGZIP(), []int{23}
 }
 
@@ -1219,82 +1219,82 @@ var File_listx_proto protoreflect.FileDescriptor
 
 var file_listx_proto_rawDesc = []byte{
 	0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x62,
-	0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x41, 0x0a, 0x0d, 0x4c, 0x69, 0x6e,
+	0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x41, 0x0a, 0x0d, 0x4c, 0x49, 0x6e,
 	0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b, 0x65,
 	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x65,
 	0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18,
 	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x28, 0x0a, 0x0e,
-	0x4c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16,
+	0x4c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16,
 	0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
-	0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x29, 0x0a, 0x0b, 0x4c, 0x6c, 0x65, 0x6e, 0x52, 0x65,
+	0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x29, 0x0a, 0x0b, 0x4c, 0x4c, 0x65, 0x6e, 0x52, 0x65,
 	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
 	0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65,
-	0x79, 0x22, 0x26, 0x0a, 0x0c, 0x4c, 0x6c, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x79, 0x22, 0x26, 0x0a, 0x0c, 0x4c, 0x4c, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
 	0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x3f, 0x0a, 0x0b, 0x4c, 0x70, 0x6f,
+	0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x3f, 0x0a, 0x0b, 0x4c, 0x50, 0x6f,
 	0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
 	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x52,
 	0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x28, 0x0a, 0x0c, 0x4c, 0x70,
+	0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x28, 0x0a, 0x0c, 0x4c, 0x50,
 	0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65,
 	0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x73,
-	0x75, 0x6c, 0x74, 0x73, 0x22, 0x42, 0x0a, 0x0c, 0x4c, 0x70, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71,
+	0x75, 0x6c, 0x74, 0x73, 0x22, 0x42, 0x0a, 0x0c, 0x4c, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71,
 	0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
 	0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79,
 	0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
-	0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x0f, 0x0a, 0x0d, 0x4c, 0x70, 0x75, 0x73,
-	0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x0a, 0x0d, 0x4c, 0x70, 0x75,
-	0x73, 0x68, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b, 0x65,
+	0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x0f, 0x0a, 0x0d, 0x4c, 0x50, 0x75, 0x73,
+	0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x0a, 0x0d, 0x4c, 0x50, 0x75,
+	0x73, 0x68, 0x58, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b, 0x65,
 	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x65,
 	0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73,
 	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x10,
-	0x0a, 0x0e, 0x4c, 0x70, 0x75, 0x73, 0x68, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x22, 0x53, 0x0a, 0x0d, 0x4c, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x0a, 0x0e, 0x4c, 0x50, 0x75, 0x73, 0x68, 0x58, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x22, 0x53, 0x0a, 0x0d, 0x4c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 	0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08,
 	0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
 	0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74,
 	0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
-	0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x28, 0x0a, 0x0e, 0x4c, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x52,
+	0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x28, 0x0a, 0x0e, 0x4c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52,
 	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65,
 	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22,
-	0x55, 0x0a, 0x0b, 0x4c, 0x72, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a,
+	0x55, 0x0a, 0x0b, 0x4c, 0x52, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a,
 	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61,
 	0x73, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f,
 	0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
 	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x24, 0x0a, 0x0c, 0x4c, 0x72, 0x65, 0x6d, 0x52, 0x65,
+	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x24, 0x0a, 0x0c, 0x4c, 0x52, 0x65, 0x6d, 0x52, 0x65,
 	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
 	0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x55, 0x0a, 0x0b,
-	0x4c, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b,
+	0x4c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b,
 	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b,
 	0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78,
 	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a,
 	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
-	0x6c, 0x75, 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x4c, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x22, 0x3f, 0x0a, 0x0b, 0x52, 0x70, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x6c, 0x75, 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x4c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x22, 0x3f, 0x0a, 0x0b, 0x52, 0x50, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65,
 	0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
 	0x08, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
 	0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63,
-	0x6f, 0x75, 0x6e, 0x74, 0x22, 0x26, 0x0a, 0x0c, 0x52, 0x70, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x75, 0x6e, 0x74, 0x22, 0x26, 0x0a, 0x0c, 0x52, 0x50, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70,
 	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01,
 	0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x52, 0x0a, 0x0c,
-	0x4c, 0x74, 0x72, 0x69, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03,
+	0x4c, 0x54, 0x72, 0x69, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03,
 	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65,
 	0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72,
 	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10,
 	0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64,
-	0x22, 0x0f, 0x0a, 0x0d, 0x4c, 0x74, 0x72, 0x69, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x22, 0x42, 0x0a, 0x0c, 0x52, 0x70, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x22, 0x0f, 0x0a, 0x0d, 0x4c, 0x54, 0x72, 0x69, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x22, 0x42, 0x0a, 0x0c, 0x52, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 	0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08,
 	0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a,
 	0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76,
-	0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x70, 0x75, 0x73, 0x68, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x0a, 0x0d, 0x52, 0x70, 0x75, 0x73, 0x68, 0x78,
+	0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x0a, 0x0d, 0x52, 0x50, 0x75, 0x73, 0x68, 0x58,
 	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
 	0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03,
 	0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20,
 	0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x10, 0x0a, 0x0e, 0x52,
-	0x70, 0x75, 0x73, 0x68, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a,
+	0x50, 0x75, 0x73, 0x68, 0x58, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a,
 	0x09, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
 	0x6f, 0x33,
 }
@@ -1313,45 +1313,45 @@ func file_listx_proto_rawDescGZIP() []byte {
 
 var file_listx_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
 var file_listx_proto_goTypes = []interface{}{
-	(*LindexRequest)(nil),  // 0: LindexRequest
-	(*LindexResponse)(nil), // 1: LindexResponse
-	(*LlenRequest)(nil),    // 2: LlenRequest
-	(*LlenResponse)(nil),   // 3: LlenResponse
-	(*LpopRequest)(nil),    // 4: LpopRequest
-	(*LpopResponse)(nil),   // 5: LpopResponse
-	(*LpushRequest)(nil),   // 6: LpushRequest
-	(*LpushResponse)(nil),  // 7: LpushResponse
-	(*LpushxRequest)(nil),  // 8: LpushxRequest
-	(*LpushxResponse)(nil), // 9: LpushxResponse
-	(*LrangeRequest)(nil),  // 10: LrangeRequest
-	(*LrangeResponse)(nil), // 11: LrangeResponse
-	(*LremRequest)(nil),    // 12: LremRequest
-	(*LremResponse)(nil),   // 13: LremResponse
-	(*LsetRequest)(nil),    // 14: LsetRequest
-	(*LsetResponse)(nil),   // 15: LsetResponse
-	(*RpopRequest)(nil),    // 16: RpopRequest
-	(*RpopResponse)(nil),   // 17: RpopResponse
-	(*LtrimRequest)(nil),   // 18: LtrimRequest
-	(*LtrimResponse)(nil),  // 19: LtrimResponse
-	(*RpushRequest)(nil),   // 20: RpushRequest
-	(*RpushResponse)(nil),  // 21: RpushResponse
-	(*RpushxRequest)(nil),  // 22: RpushxRequest
-	(*RpushxResponse)(nil), // 23: RpushxResponse
+	(*LIndexRequest)(nil),  // 0: LIndexRequest
+	(*LIndexResponse)(nil), // 1: LIndexResponse
+	(*LLenRequest)(nil),    // 2: LLenRequest
+	(*LLenResponse)(nil),   // 3: LLenResponse
+	(*LPopRequest)(nil),    // 4: LPopRequest
+	(*LPopResponse)(nil),   // 5: LPopResponse
+	(*LPushRequest)(nil),   // 6: LPushRequest
+	(*LPushResponse)(nil),  // 7: LPushResponse
+	(*LPushXRequest)(nil),  // 8: LPushXRequest
+	(*LPushXResponse)(nil), // 9: LPushXResponse
+	(*LRangeRequest)(nil),  // 10: LRangeRequest
+	(*LRangeResponse)(nil), // 11: LRangeResponse
+	(*LRemRequest)(nil),    // 12: LRemRequest
+	(*LRemResponse)(nil),   // 13: LRemResponse
+	(*LSetRequest)(nil),    // 14: LSetRequest
+	(*LSetResponse)(nil),   // 15: LSetResponse
+	(*RPopRequest)(nil),    // 16: RPopRequest
+	(*RPopResponse)(nil),   // 17: RPopResponse
+	(*LTrimRequest)(nil),   // 18: LTrimRequest
+	(*LTrimResponse)(nil),  // 19: LTrimResponse
+	(*RPushRequest)(nil),   // 20: RPushRequest
+	(*RPushResponse)(nil),  // 21: RPushResponse
+	(*RPushXRequest)(nil),  // 22: RPushXRequest
+	(*RPushXResponse)(nil), // 23: RPushXResponse
 	(*BaseKey)(nil),        // 24: BaseKey
 }
 var file_listx_proto_depIdxs = []int32{
-	24, // 0: LindexRequest.key:type_name -> BaseKey
-	24, // 1: LlenRequest.key:type_name -> BaseKey
-	24, // 2: LpopRequest.key:type_name -> BaseKey
-	24, // 3: LpushRequest.key:type_name -> BaseKey
-	24, // 4: LpushxRequest.key:type_name -> BaseKey
-	24, // 5: LrangeRequest.key:type_name -> BaseKey
-	24, // 6: LremRequest.key:type_name -> BaseKey
-	24, // 7: LsetRequest.key:type_name -> BaseKey
-	24, // 8: RpopRequest.key:type_name -> BaseKey
-	24, // 9: LtrimRequest.key:type_name -> BaseKey
-	24, // 10: RpushRequest.key:type_name -> BaseKey
-	24, // 11: RpushxRequest.key:type_name -> BaseKey
+	24, // 0: LIndexRequest.key:type_name -> BaseKey
+	24, // 1: LLenRequest.key:type_name -> BaseKey
+	24, // 2: LPopRequest.key:type_name -> BaseKey
+	24, // 3: LPushRequest.key:type_name -> BaseKey
+	24, // 4: LPushXRequest.key:type_name -> BaseKey
+	24, // 5: LRangeRequest.key:type_name -> BaseKey
+	24, // 6: LRemRequest.key:type_name -> BaseKey
+	24, // 7: LSetRequest.key:type_name -> BaseKey
+	24, // 8: RPopRequest.key:type_name -> BaseKey
+	24, // 9: LTrimRequest.key:type_name -> BaseKey
+	24, // 10: RPushRequest.key:type_name -> BaseKey
+	24, // 11: RPushXRequest.key:type_name -> BaseKey
 	12, // [12:12] is the sub-list for method output_type
 	12, // [12:12] is the sub-list for method input_type
 	12, // [12:12] is the sub-list for extension type_name
@@ -1367,7 +1367,7 @@ func file_listx_proto_init() {
 	file_base_proto_init()
 	if !protoimpl.UnsafeEnabled {
 		file_listx_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LindexRequest); i {
+			switch v := v.(*LIndexRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1379,7 +1379,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LindexResponse); i {
+			switch v := v.(*LIndexResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1391,7 +1391,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LlenRequest); i {
+			switch v := v.(*LLenRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1403,7 +1403,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LlenResponse); i {
+			switch v := v.(*LLenResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1415,7 +1415,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LpopRequest); i {
+			switch v := v.(*LPopRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1427,7 +1427,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LpopResponse); i {
+			switch v := v.(*LPopResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1439,7 +1439,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LpushRequest); i {
+			switch v := v.(*LPushRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1451,7 +1451,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LpushResponse); i {
+			switch v := v.(*LPushResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1463,7 +1463,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LpushxRequest); i {
+			switch v := v.(*LPushXRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1475,7 +1475,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LpushxResponse); i {
+			switch v := v.(*LPushXResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1487,7 +1487,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LrangeRequest); i {
+			switch v := v.(*LRangeRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1499,7 +1499,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LrangeResponse); i {
+			switch v := v.(*LRangeResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1511,7 +1511,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LremRequest); i {
+			switch v := v.(*LRemRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1523,7 +1523,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LremResponse); i {
+			switch v := v.(*LRemResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1535,7 +1535,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LsetRequest); i {
+			switch v := v.(*LSetRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1547,7 +1547,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LsetResponse); i {
+			switch v := v.(*LSetResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1559,7 +1559,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RpopRequest); i {
+			switch v := v.(*RPopRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1571,7 +1571,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RpopResponse); i {
+			switch v := v.(*RPopResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1583,7 +1583,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LtrimRequest); i {
+			switch v := v.(*LTrimRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1595,7 +1595,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LtrimResponse); i {
+			switch v := v.(*LTrimResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1607,7 +1607,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RpushRequest); i {
+			switch v := v.(*RPushRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1619,7 +1619,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RpushResponse); i {
+			switch v := v.(*RPushResponse); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1631,7 +1631,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RpushxRequest); i {
+			switch v := v.(*RPushXRequest); i {
 			case 0:
 				return &v.state
 			case 1:
@@ -1643,7 +1643,7 @@ func file_listx_proto_init() {
 			}
 		}
 		file_listx_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RpushxResponse); i {
+			switch v := v.(*RPushXResponse); i {
 			case 0:
 				return &v.state
 			case 1:
diff --git a/pkg/proto/storage.pb.go b/pkg/proto/storage.pb.go
index 0d11d44..339dc92 100644
--- a/pkg/proto/storage.pb.go
+++ b/pkg/proto/storage.pb.go
@@ -42,52 +42,52 @@ var file_storage_proto_rawDesc = []byte{
 	0x12, 0x29, 0x0a, 0x06, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x12, 0x0e, 0x2e, 0x52, 0x65, 0x64,
 	0x75, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x52, 0x65, 0x64,
 	0x75, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x53,
-	0x65, 0x74, 0x62, 0x69, 0x74, 0x12, 0x0e, 0x2e, 0x53, 0x65, 0x74, 0x62, 0x69, 0x74, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x53, 0x65, 0x74, 0x62, 0x69, 0x74, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x62, 0x69, 0x74,
-	0x12, 0x0e, 0x2e, 0x47, 0x65, 0x74, 0x62, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x0f, 0x2e, 0x47, 0x65, 0x74, 0x62, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x12, 0x2f, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x2e,
-	0x47, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x11, 0x2e, 0x47, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x73, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x47,
-	0x65, 0x74, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x47,
-	0x65, 0x74, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a,
-	0x06, 0x53, 0x74, 0x72, 0x6c, 0x65, 0x6e, 0x12, 0x0e, 0x2e, 0x53, 0x74, 0x72, 0x6c, 0x65, 0x6e,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x53, 0x74, 0x72, 0x6c, 0x65, 0x6e,
+	0x65, 0x74, 0x42, 0x69, 0x74, 0x12, 0x0e, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x69, 0x74, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x53, 0x65, 0x74, 0x42, 0x69, 0x74, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x42, 0x69, 0x74,
+	0x12, 0x0e, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x1a, 0x0f, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x12, 0x2f, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x2e,
+	0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+	0x11, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x12, 0x0e, 0x2e, 0x47,
+	0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x47,
+	0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a,
+	0x06, 0x53, 0x74, 0x72, 0x4c, 0x65, 0x6e, 0x12, 0x0e, 0x2e, 0x53, 0x74, 0x72, 0x4c, 0x65, 0x6e,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x53, 0x74, 0x72, 0x4c, 0x65, 0x6e,
 	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x53, 0x65, 0x74, 0x6e,
 	0x78, 0x12, 0x0d, 0x2e, 0x53, 0x65, 0x74, 0x6e, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
 	0x1a, 0x0e, 0x2e, 0x53, 0x65, 0x74, 0x6e, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x12, 0x29, 0x0a, 0x06, 0x4c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x0e, 0x2e, 0x4c, 0x69, 0x6e,
-	0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x4c, 0x69, 0x6e,
+	0x12, 0x29, 0x0a, 0x06, 0x4c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x0e, 0x2e, 0x4c, 0x49, 0x6e,
+	0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x4c, 0x49, 0x6e,
 	0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x4c,
-	0x6c, 0x65, 0x6e, 0x12, 0x0c, 0x2e, 0x4c, 0x6c, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x1a, 0x0d, 0x2e, 0x4c, 0x6c, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x12, 0x23, 0x0a, 0x04, 0x4c, 0x70, 0x6f, 0x70, 0x12, 0x0c, 0x2e, 0x4c, 0x70, 0x6f, 0x70, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x4c, 0x70, 0x6f, 0x70, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x4c, 0x70, 0x75, 0x73, 0x68, 0x12, 0x0d,
-	0x2e, 0x4c, 0x70, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e,
-	0x4c, 0x70, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a,
-	0x06, 0x4c, 0x70, 0x75, 0x73, 0x68, 0x78, 0x12, 0x0e, 0x2e, 0x4c, 0x70, 0x75, 0x73, 0x68, 0x78,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x4c, 0x70, 0x75, 0x73, 0x68, 0x78,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x4c, 0x72, 0x61, 0x6e,
-	0x67, 0x65, 0x12, 0x0e, 0x2e, 0x4c, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x4c, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x4c, 0x72, 0x65, 0x6d, 0x12, 0x0c, 0x2e, 0x4c, 0x72,
-	0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x4c, 0x72, 0x65, 0x6d,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x4c, 0x73, 0x65, 0x74,
-	0x12, 0x0c, 0x2e, 0x4c, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d,
-	0x2e, 0x4c, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a,
-	0x04, 0x52, 0x70, 0x6f, 0x70, 0x12, 0x0c, 0x2e, 0x52, 0x70, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x52, 0x70, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x4c, 0x74, 0x72, 0x69, 0x6d, 0x12, 0x0d, 0x2e, 0x4c, 0x74,
-	0x72, 0x69, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x4c, 0x74, 0x72,
-	0x69, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x52, 0x70,
-	0x75, 0x73, 0x68, 0x12, 0x0d, 0x2e, 0x52, 0x70, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x52, 0x70, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x52, 0x70, 0x75, 0x73, 0x68, 0x78, 0x12, 0x0e, 0x2e, 0x52,
-	0x70, 0x75, 0x73, 0x68, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x52,
-	0x70, 0x75, 0x73, 0x68, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a,
+	0x4c, 0x65, 0x6e, 0x12, 0x0c, 0x2e, 0x4c, 0x4c, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x1a, 0x0d, 0x2e, 0x4c, 0x4c, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x12, 0x23, 0x0a, 0x04, 0x4c, 0x50, 0x6f, 0x70, 0x12, 0x0c, 0x2e, 0x4c, 0x50, 0x6f, 0x70, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x4c, 0x50, 0x6f, 0x70, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x4c, 0x50, 0x75, 0x73, 0x68, 0x12, 0x0d,
+	0x2e, 0x4c, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e,
+	0x4c, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a,
+	0x06, 0x4c, 0x50, 0x75, 0x73, 0x68, 0x58, 0x12, 0x0e, 0x2e, 0x4c, 0x50, 0x75, 0x73, 0x68, 0x58,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x4c, 0x50, 0x75, 0x73, 0x68, 0x58,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x4c, 0x52, 0x61, 0x6e,
+	0x67, 0x65, 0x12, 0x0e, 0x2e, 0x4c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x4c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x4c, 0x52, 0x65, 0x6d, 0x12, 0x0c, 0x2e, 0x4c, 0x52,
+	0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x4c, 0x52, 0x65, 0x6d,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x4c, 0x53, 0x65, 0x74,
+	0x12, 0x0c, 0x2e, 0x4c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d,
+	0x2e, 0x4c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a,
+	0x04, 0x52, 0x50, 0x6f, 0x70, 0x12, 0x0c, 0x2e, 0x52, 0x50, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x52, 0x50, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x4c, 0x54, 0x72, 0x69, 0x6d, 0x12, 0x0d, 0x2e, 0x4c, 0x54,
+	0x72, 0x69, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x4c, 0x54, 0x72,
+	0x69, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x52, 0x50,
+	0x75, 0x73, 0x68, 0x12, 0x0d, 0x2e, 0x52, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x52, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x52, 0x50, 0x75, 0x73, 0x68, 0x58, 0x12, 0x0e, 0x2e, 0x52,
+	0x50, 0x75, 0x73, 0x68, 0x58, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x52,
+	0x50, 0x75, 0x73, 0x68, 0x58, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a,
 	0x09, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
 	0x6f, 0x33,
 }
@@ -97,92 +97,92 @@ var file_storage_proto_goTypes = []interface{}{
 	(*GetRequest)(nil),       // 1: GetRequest
 	(*AddRequest)(nil),       // 2: AddRequest
 	(*ReduceRequest)(nil),    // 3: ReduceRequest
-	(*SetbitRequest)(nil),    // 4: SetbitRequest
-	(*GetbitRequest)(nil),    // 5: GetbitRequest
-	(*GetrangeRequest)(nil),  // 6: GetrangeRequest
-	(*GetsetRequest)(nil),    // 7: GetsetRequest
-	(*StrlenRequest)(nil),    // 8: StrlenRequest
+	(*SetBitRequest)(nil),    // 4: SetBitRequest
+	(*GetBitRequest)(nil),    // 5: GetBitRequest
+	(*GetRangeRequest)(nil),  // 6: GetRangeRequest
+	(*GetSetRequest)(nil),    // 7: GetSetRequest
+	(*StrLenRequest)(nil),    // 8: StrLenRequest
 	(*SetnxRequest)(nil),     // 9: SetnxRequest
-	(*LindexRequest)(nil),    // 10: LindexRequest
-	(*LlenRequest)(nil),      // 11: LlenRequest
-	(*LpopRequest)(nil),      // 12: LpopRequest
-	(*LpushRequest)(nil),     // 13: LpushRequest
-	(*LpushxRequest)(nil),    // 14: LpushxRequest
-	(*LrangeRequest)(nil),    // 15: LrangeRequest
-	(*LremRequest)(nil),      // 16: LremRequest
-	(*LsetRequest)(nil),      // 17: LsetRequest
-	(*RpopRequest)(nil),      // 18: RpopRequest
-	(*LtrimRequest)(nil),     // 19: LtrimRequest
-	(*RpushRequest)(nil),     // 20: RpushRequest
-	(*RpushxRequest)(nil),    // 21: RpushxRequest
+	(*LIndexRequest)(nil),    // 10: LIndexRequest
+	(*LLenRequest)(nil),      // 11: LLenRequest
+	(*LPopRequest)(nil),      // 12: LPopRequest
+	(*LPushRequest)(nil),     // 13: LPushRequest
+	(*LPushXRequest)(nil),    // 14: LPushXRequest
+	(*LRangeRequest)(nil),    // 15: LRangeRequest
+	(*LRemRequest)(nil),      // 16: LRemRequest
+	(*LSetRequest)(nil),      // 17: LSetRequest
+	(*RPopRequest)(nil),      // 18: RPopRequest
+	(*LTrimRequest)(nil),     // 19: LTrimRequest
+	(*RPushRequest)(nil),     // 20: RPushRequest
+	(*RPushXRequest)(nil),    // 21: RPushXRequest
 	(*SetResponse)(nil),      // 22: SetResponse
 	(*GetResponse)(nil),      // 23: GetResponse
 	(*AddResponse)(nil),      // 24: AddResponse
 	(*ReduceResponse)(nil),   // 25: ReduceResponse
-	(*SetbitResponse)(nil),   // 26: SetbitResponse
-	(*GetbitResponse)(nil),   // 27: GetbitResponse
-	(*GetrangeResponse)(nil), // 28: GetrangeResponse
-	(*GetsetResponse)(nil),   // 29: GetsetResponse
-	(*StrlenResponse)(nil),   // 30: StrlenResponse
+	(*SetBitResponse)(nil),   // 26: SetBitResponse
+	(*GetBitResponse)(nil),   // 27: GetBitResponse
+	(*GetRangeResponse)(nil), // 28: GetRangeResponse
+	(*GetSetResponse)(nil),   // 29: GetSetResponse
+	(*StrLenResponse)(nil),   // 30: StrLenResponse
 	(*SetnxResponse)(nil),    // 31: SetnxResponse
-	(*LindexResponse)(nil),   // 32: LindexResponse
-	(*LlenResponse)(nil),     // 33: LlenResponse
-	(*LpopResponse)(nil),     // 34: LpopResponse
-	(*LpushResponse)(nil),    // 35: LpushResponse
-	(*LpushxResponse)(nil),   // 36: LpushxResponse
-	(*LrangeResponse)(nil),   // 37: LrangeResponse
-	(*LremResponse)(nil),     // 38: LremResponse
-	(*LsetResponse)(nil),     // 39: LsetResponse
-	(*RpopResponse)(nil),     // 40: RpopResponse
-	(*LtrimResponse)(nil),    // 41: LtrimResponse
-	(*RpushResponse)(nil),    // 42: RpushResponse
-	(*RpushxResponse)(nil),   // 43: RpushxResponse
+	(*LIndexResponse)(nil),   // 32: LIndexResponse
+	(*LLenResponse)(nil),     // 33: LLenResponse
+	(*LPopResponse)(nil),     // 34: LPopResponse
+	(*LPushResponse)(nil),    // 35: LPushResponse
+	(*LPushXResponse)(nil),   // 36: LPushXResponse
+	(*LRangeResponse)(nil),   // 37: LRangeResponse
+	(*LRemResponse)(nil),     // 38: LRemResponse
+	(*LSetResponse)(nil),     // 39: LSetResponse
+	(*RPopResponse)(nil),     // 40: RPopResponse
+	(*LTrimResponse)(nil),    // 41: LTrimResponse
+	(*RPushResponse)(nil),    // 42: RPushResponse
+	(*RPushXResponse)(nil),   // 43: RPushXResponse
 }
 var file_storage_proto_depIdxs = []int32{
 	0,  // 0: CommServer.Set:input_type -> SetRequest
 	1,  // 1: CommServer.Get:input_type -> GetRequest
 	2,  // 2: CommServer.Add:input_type -> AddRequest
 	3,  // 3: CommServer.Reduce:input_type -> ReduceRequest
-	4,  // 4: CommServer.Setbit:input_type -> SetbitRequest
-	5,  // 5: CommServer.Getbit:input_type -> GetbitRequest
-	6,  // 6: CommServer.Getrange:input_type -> GetrangeRequest
-	7,  // 7: CommServer.Getset:input_type -> GetsetRequest
-	8,  // 8: CommServer.Strlen:input_type -> StrlenRequest
+	4,  // 4: CommServer.SetBit:input_type -> SetBitRequest
+	5,  // 5: CommServer.GetBit:input_type -> GetBitRequest
+	6,  // 6: CommServer.GetRange:input_type -> GetRangeRequest
+	7,  // 7: CommServer.GetSet:input_type -> GetSetRequest
+	8,  // 8: CommServer.StrLen:input_type -> StrLenRequest
 	9,  // 9: CommServer.Setnx:input_type -> SetnxRequest
-	10, // 10: CommServer.Lindex:input_type -> LindexRequest
-	11, // 11: CommServer.Llen:input_type -> LlenRequest
-	12, // 12: CommServer.Lpop:input_type -> LpopRequest
-	13, // 13: CommServer.Lpush:input_type -> LpushRequest
-	14, // 14: CommServer.Lpushx:input_type -> LpushxRequest
-	15, // 15: CommServer.Lrange:input_type -> LrangeRequest
-	16, // 16: CommServer.Lrem:input_type -> LremRequest
-	17, // 17: CommServer.Lset:input_type -> LsetRequest
-	18, // 18: CommServer.Rpop:input_type -> RpopRequest
-	19, // 19: CommServer.Ltrim:input_type -> LtrimRequest
-	20, // 20: CommServer.Rpush:input_type -> RpushRequest
-	21, // 21: CommServer.Rpushx:input_type -> RpushxRequest
+	10, // 10: CommServer.LIndex:input_type -> LIndexRequest
+	11, // 11: CommServer.LLen:input_type -> LLenRequest
+	12, // 12: CommServer.LPop:input_type -> LPopRequest
+	13, // 13: CommServer.LPush:input_type -> LPushRequest
+	14, // 14: CommServer.LPushX:input_type -> LPushXRequest
+	15, // 15: CommServer.LRange:input_type -> LRangeRequest
+	16, // 16: CommServer.LRem:input_type -> LRemRequest
+	17, // 17: CommServer.LSet:input_type -> LSetRequest
+	18, // 18: CommServer.RPop:input_type -> RPopRequest
+	19, // 19: CommServer.LTrim:input_type -> LTrimRequest
+	20, // 20: CommServer.RPush:input_type -> RPushRequest
+	21, // 21: CommServer.RPushX:input_type -> RPushXRequest
 	22, // 22: CommServer.Set:output_type -> SetResponse
 	23, // 23: CommServer.Get:output_type -> GetResponse
 	24, // 24: CommServer.Add:output_type -> AddResponse
 	25, // 25: CommServer.Reduce:output_type -> ReduceResponse
-	26, // 26: CommServer.Setbit:output_type -> SetbitResponse
-	27, // 27: CommServer.Getbit:output_type -> GetbitResponse
-	28, // 28: CommServer.Getrange:output_type -> GetrangeResponse
-	29, // 29: CommServer.Getset:output_type -> GetsetResponse
-	30, // 30: CommServer.Strlen:output_type -> StrlenResponse
+	26, // 26: CommServer.SetBit:output_type -> SetBitResponse
+	27, // 27: CommServer.GetBit:output_type -> GetBitResponse
+	28, // 28: CommServer.GetRange:output_type -> GetRangeResponse
+	29, // 29: CommServer.GetSet:output_type -> GetSetResponse
+	30, // 30: CommServer.StrLen:output_type -> StrLenResponse
 	31, // 31: CommServer.Setnx:output_type -> SetnxResponse
-	32, // 32: CommServer.Lindex:output_type -> LindexResponse
-	33, // 33: CommServer.Llen:output_type -> LlenResponse
-	34, // 34: CommServer.Lpop:output_type -> LpopResponse
-	35, // 35: CommServer.Lpush:output_type -> LpushResponse
-	36, // 36: CommServer.Lpushx:output_type -> LpushxResponse
-	37, // 37: CommServer.Lrange:output_type -> LrangeResponse
-	38, // 38: CommServer.Lrem:output_type -> LremResponse
-	39, // 39: CommServer.Lset:output_type -> LsetResponse
-	40, // 40: CommServer.Rpop:output_type -> RpopResponse
-	41, // 41: CommServer.Ltrim:output_type -> LtrimResponse
-	42, // 42: CommServer.Rpush:output_type -> RpushResponse
-	43, // 43: CommServer.Rpushx:output_type -> RpushxResponse
+	32, // 32: CommServer.LIndex:output_type -> LIndexResponse
+	33, // 33: CommServer.LLen:output_type -> LLenResponse
+	34, // 34: CommServer.LPop:output_type -> LPopResponse
+	35, // 35: CommServer.LPush:output_type -> LPushResponse
+	36, // 36: CommServer.LPushX:output_type -> LPushXResponse
+	37, // 37: CommServer.LRange:output_type -> LRangeResponse
+	38, // 38: CommServer.LRem:output_type -> LRemResponse
+	39, // 39: CommServer.LSet:output_type -> LSetResponse
+	40, // 40: CommServer.RPop:output_type -> RPopResponse
+	41, // 41: CommServer.LTrim:output_type -> LTrimResponse
+	42, // 42: CommServer.RPush:output_type -> RPushResponse
+	43, // 43: CommServer.RPushX:output_type -> RPushXResponse
 	22, // [22:44] is the sub-list for method output_type
 	0,  // [0:22] is the sub-list for method input_type
 	0,  // [0:0] is the sub-list for extension type_name
@@ -232,24 +232,24 @@ type CommServerClient interface {
 	Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error)
 	Add(ctx context.Context, in *AddRequest, opts ...grpc.CallOption) (*AddResponse, error)
 	Reduce(ctx context.Context, in *ReduceRequest, opts ...grpc.CallOption) (*ReduceResponse, error)
-	Setbit(ctx context.Context, in *SetbitRequest, opts ...grpc.CallOption) (*SetbitResponse, error)
-	Getbit(ctx context.Context, in *GetbitRequest, opts ...grpc.CallOption) (*GetbitResponse, error)
-	Getrange(ctx context.Context, in *GetrangeRequest, opts ...grpc.CallOption) (*GetrangeResponse, error)
-	Getset(ctx context.Context, in *GetsetRequest, opts ...grpc.CallOption) (*GetsetResponse, error)
-	Strlen(ctx context.Context, in *StrlenRequest, opts ...grpc.CallOption) (*StrlenResponse, error)
+	SetBit(ctx context.Context, in *SetBitRequest, opts ...grpc.CallOption) (*SetBitResponse, error)
+	GetBit(ctx context.Context, in *GetBitRequest, opts ...grpc.CallOption) (*GetBitResponse, error)
+	GetRange(ctx context.Context, in *GetRangeRequest, opts ...grpc.CallOption) (*GetRangeResponse, error)
+	GetSet(ctx context.Context, in *GetSetRequest, opts ...grpc.CallOption) (*GetSetResponse, error)
+	StrLen(ctx context.Context, in *StrLenRequest, opts ...grpc.CallOption) (*StrLenResponse, error)
 	Setnx(ctx context.Context, in *SetnxRequest, opts ...grpc.CallOption) (*SetnxResponse, error)
-	Lindex(ctx context.Context, in *LindexRequest, opts ...grpc.CallOption) (*LindexResponse, error)
-	Llen(ctx context.Context, in *LlenRequest, opts ...grpc.CallOption) (*LlenResponse, error)
-	Lpop(ctx context.Context, in *LpopRequest, opts ...grpc.CallOption) (*LpopResponse, error)
-	Lpush(ctx context.Context, in *LpushRequest, opts ...grpc.CallOption) (*LpushResponse, error)
-	Lpushx(ctx context.Context, in *LpushxRequest, opts ...grpc.CallOption) (*LpushxResponse, error)
-	Lrange(ctx context.Context, in *LrangeRequest, opts ...grpc.CallOption) (*LrangeResponse, error)
-	Lrem(ctx context.Context, in *LremRequest, opts ...grpc.CallOption) (*LremResponse, error)
-	Lset(ctx context.Context, in *LsetRequest, opts ...grpc.CallOption) (*LsetResponse, error)
-	Rpop(ctx context.Context, in *RpopRequest, opts ...grpc.CallOption) (*RpopResponse, error)
-	Ltrim(ctx context.Context, in *LtrimRequest, opts ...grpc.CallOption) (*LtrimResponse, error)
-	Rpush(ctx context.Context, in *RpushRequest, opts ...grpc.CallOption) (*RpushResponse, error)
-	Rpushx(ctx context.Context, in *RpushxRequest, opts ...grpc.CallOption) (*RpushxResponse, error)
+	LIndex(ctx context.Context, in *LIndexRequest, opts ...grpc.CallOption) (*LIndexResponse, error)
+	LLen(ctx context.Context, in *LLenRequest, opts ...grpc.CallOption) (*LLenResponse, error)
+	LPop(ctx context.Context, in *LPopRequest, opts ...grpc.CallOption) (*LPopResponse, error)
+	LPush(ctx context.Context, in *LPushRequest, opts ...grpc.CallOption) (*LPushResponse, error)
+	LPushX(ctx context.Context, in *LPushXRequest, opts ...grpc.CallOption) (*LPushXResponse, error)
+	LRange(ctx context.Context, in *LRangeRequest, opts ...grpc.CallOption) (*LRangeResponse, error)
+	LRem(ctx context.Context, in *LRemRequest, opts ...grpc.CallOption) (*LRemResponse, error)
+	LSet(ctx context.Context, in *LSetRequest, opts ...grpc.CallOption) (*LSetResponse, error)
+	RPop(ctx context.Context, in *RPopRequest, opts ...grpc.CallOption) (*RPopResponse, error)
+	LTrim(ctx context.Context, in *LTrimRequest, opts ...grpc.CallOption) (*LTrimResponse, error)
+	RPush(ctx context.Context, in *RPushRequest, opts ...grpc.CallOption) (*RPushResponse, error)
+	RPushX(ctx context.Context, in *RPushXRequest, opts ...grpc.CallOption) (*RPushXResponse, error)
 }
 
 type commServerClient struct {
@@ -296,45 +296,45 @@ func (c *commServerClient) Reduce(ctx context.Context, in *ReduceRequest, opts .
 	return out, nil
 }
 
-func (c *commServerClient) Setbit(ctx context.Context, in *SetbitRequest, opts ...grpc.CallOption) (*SetbitResponse, error) {
-	out := new(SetbitResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Setbit", in, out, opts...)
+func (c *commServerClient) SetBit(ctx context.Context, in *SetBitRequest, opts ...grpc.CallOption) (*SetBitResponse, error) {
+	out := new(SetBitResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/SetBit", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Getbit(ctx context.Context, in *GetbitRequest, opts ...grpc.CallOption) (*GetbitResponse, error) {
-	out := new(GetbitResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Getbit", in, out, opts...)
+func (c *commServerClient) GetBit(ctx context.Context, in *GetBitRequest, opts ...grpc.CallOption) (*GetBitResponse, error) {
+	out := new(GetBitResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/GetBit", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Getrange(ctx context.Context, in *GetrangeRequest, opts ...grpc.CallOption) (*GetrangeResponse, error) {
-	out := new(GetrangeResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Getrange", in, out, opts...)
+func (c *commServerClient) GetRange(ctx context.Context, in *GetRangeRequest, opts ...grpc.CallOption) (*GetRangeResponse, error) {
+	out := new(GetRangeResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/GetRange", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Getset(ctx context.Context, in *GetsetRequest, opts ...grpc.CallOption) (*GetsetResponse, error) {
-	out := new(GetsetResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Getset", in, out, opts...)
+func (c *commServerClient) GetSet(ctx context.Context, in *GetSetRequest, opts ...grpc.CallOption) (*GetSetResponse, error) {
+	out := new(GetSetResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/GetSet", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Strlen(ctx context.Context, in *StrlenRequest, opts ...grpc.CallOption) (*StrlenResponse, error) {
-	out := new(StrlenResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Strlen", in, out, opts...)
+func (c *commServerClient) StrLen(ctx context.Context, in *StrLenRequest, opts ...grpc.CallOption) (*StrLenResponse, error) {
+	out := new(StrLenResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/StrLen", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -350,108 +350,108 @@ func (c *commServerClient) Setnx(ctx context.Context, in *SetnxRequest, opts ...
 	return out, nil
 }
 
-func (c *commServerClient) Lindex(ctx context.Context, in *LindexRequest, opts ...grpc.CallOption) (*LindexResponse, error) {
-	out := new(LindexResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Lindex", in, out, opts...)
+func (c *commServerClient) LIndex(ctx context.Context, in *LIndexRequest, opts ...grpc.CallOption) (*LIndexResponse, error) {
+	out := new(LIndexResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/LIndex", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Llen(ctx context.Context, in *LlenRequest, opts ...grpc.CallOption) (*LlenResponse, error) {
-	out := new(LlenResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Llen", in, out, opts...)
+func (c *commServerClient) LLen(ctx context.Context, in *LLenRequest, opts ...grpc.CallOption) (*LLenResponse, error) {
+	out := new(LLenResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/LLen", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Lpop(ctx context.Context, in *LpopRequest, opts ...grpc.CallOption) (*LpopResponse, error) {
-	out := new(LpopResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Lpop", in, out, opts...)
+func (c *commServerClient) LPop(ctx context.Context, in *LPopRequest, opts ...grpc.CallOption) (*LPopResponse, error) {
+	out := new(LPopResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/LPop", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Lpush(ctx context.Context, in *LpushRequest, opts ...grpc.CallOption) (*LpushResponse, error) {
-	out := new(LpushResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Lpush", in, out, opts...)
+func (c *commServerClient) LPush(ctx context.Context, in *LPushRequest, opts ...grpc.CallOption) (*LPushResponse, error) {
+	out := new(LPushResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/LPush", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Lpushx(ctx context.Context, in *LpushxRequest, opts ...grpc.CallOption) (*LpushxResponse, error) {
-	out := new(LpushxResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Lpushx", in, out, opts...)
+func (c *commServerClient) LPushX(ctx context.Context, in *LPushXRequest, opts ...grpc.CallOption) (*LPushXResponse, error) {
+	out := new(LPushXResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/LPushX", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Lrange(ctx context.Context, in *LrangeRequest, opts ...grpc.CallOption) (*LrangeResponse, error) {
-	out := new(LrangeResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Lrange", in, out, opts...)
+func (c *commServerClient) LRange(ctx context.Context, in *LRangeRequest, opts ...grpc.CallOption) (*LRangeResponse, error) {
+	out := new(LRangeResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/LRange", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Lrem(ctx context.Context, in *LremRequest, opts ...grpc.CallOption) (*LremResponse, error) {
-	out := new(LremResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Lrem", in, out, opts...)
+func (c *commServerClient) LRem(ctx context.Context, in *LRemRequest, opts ...grpc.CallOption) (*LRemResponse, error) {
+	out := new(LRemResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/LRem", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Lset(ctx context.Context, in *LsetRequest, opts ...grpc.CallOption) (*LsetResponse, error) {
-	out := new(LsetResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Lset", in, out, opts...)
+func (c *commServerClient) LSet(ctx context.Context, in *LSetRequest, opts ...grpc.CallOption) (*LSetResponse, error) {
+	out := new(LSetResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/LSet", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Rpop(ctx context.Context, in *RpopRequest, opts ...grpc.CallOption) (*RpopResponse, error) {
-	out := new(RpopResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Rpop", in, out, opts...)
+func (c *commServerClient) RPop(ctx context.Context, in *RPopRequest, opts ...grpc.CallOption) (*RPopResponse, error) {
+	out := new(RPopResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/RPop", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Ltrim(ctx context.Context, in *LtrimRequest, opts ...grpc.CallOption) (*LtrimResponse, error) {
-	out := new(LtrimResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Ltrim", in, out, opts...)
+func (c *commServerClient) LTrim(ctx context.Context, in *LTrimRequest, opts ...grpc.CallOption) (*LTrimResponse, error) {
+	out := new(LTrimResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/LTrim", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Rpush(ctx context.Context, in *RpushRequest, opts ...grpc.CallOption) (*RpushResponse, error) {
-	out := new(RpushResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Rpush", in, out, opts...)
+func (c *commServerClient) RPush(ctx context.Context, in *RPushRequest, opts ...grpc.CallOption) (*RPushResponse, error) {
+	out := new(RPushResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/RPush", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *commServerClient) Rpushx(ctx context.Context, in *RpushxRequest, opts ...grpc.CallOption) (*RpushxResponse, error) {
-	out := new(RpushxResponse)
-	err := c.cc.Invoke(ctx, "/CommServer/Rpushx", in, out, opts...)
+func (c *commServerClient) RPushX(ctx context.Context, in *RPushXRequest, opts ...grpc.CallOption) (*RPushXResponse, error) {
+	out := new(RPushXResponse)
+	err := c.cc.Invoke(ctx, "/CommServer/RPushX", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -464,24 +464,24 @@ type CommServerServer interface {
 	Get(context.Context, *GetRequest) (*GetResponse, error)
 	Add(context.Context, *AddRequest) (*AddResponse, error)
 	Reduce(context.Context, *ReduceRequest) (*ReduceResponse, error)
-	Setbit(context.Context, *SetbitRequest) (*SetbitResponse, error)
-	Getbit(context.Context, *GetbitRequest) (*GetbitResponse, error)
-	Getrange(context.Context, *GetrangeRequest) (*GetrangeResponse, error)
-	Getset(context.Context, *GetsetRequest) (*GetsetResponse, error)
-	Strlen(context.Context, *StrlenRequest) (*StrlenResponse, error)
+	SetBit(context.Context, *SetBitRequest) (*SetBitResponse, error)
+	GetBit(context.Context, *GetBitRequest) (*GetBitResponse, error)
+	GetRange(context.Context, *GetRangeRequest) (*GetRangeResponse, error)
+	GetSet(context.Context, *GetSetRequest) (*GetSetResponse, error)
+	StrLen(context.Context, *StrLenRequest) (*StrLenResponse, error)
 	Setnx(context.Context, *SetnxRequest) (*SetnxResponse, error)
-	Lindex(context.Context, *LindexRequest) (*LindexResponse, error)
-	Llen(context.Context, *LlenRequest) (*LlenResponse, error)
-	Lpop(context.Context, *LpopRequest) (*LpopResponse, error)
-	Lpush(context.Context, *LpushRequest) (*LpushResponse, error)
-	Lpushx(context.Context, *LpushxRequest) (*LpushxResponse, error)
-	Lrange(context.Context, *LrangeRequest) (*LrangeResponse, error)
-	Lrem(context.Context, *LremRequest) (*LremResponse, error)
-	Lset(context.Context, *LsetRequest) (*LsetResponse, error)
-	Rpop(context.Context, *RpopRequest) (*RpopResponse, error)
-	Ltrim(context.Context, *LtrimRequest) (*LtrimResponse, error)
-	Rpush(context.Context, *RpushRequest) (*RpushResponse, error)
-	Rpushx(context.Context, *RpushxRequest) (*RpushxResponse, error)
+	LIndex(context.Context, *LIndexRequest) (*LIndexResponse, error)
+	LLen(context.Context, *LLenRequest) (*LLenResponse, error)
+	LPop(context.Context, *LPopRequest) (*LPopResponse, error)
+	LPush(context.Context, *LPushRequest) (*LPushResponse, error)
+	LPushX(context.Context, *LPushXRequest) (*LPushXResponse, error)
+	LRange(context.Context, *LRangeRequest) (*LRangeResponse, error)
+	LRem(context.Context, *LRemRequest) (*LRemResponse, error)
+	LSet(context.Context, *LSetRequest) (*LSetResponse, error)
+	RPop(context.Context, *RPopRequest) (*RPopResponse, error)
+	LTrim(context.Context, *LTrimRequest) (*LTrimResponse, error)
+	RPush(context.Context, *RPushRequest) (*RPushResponse, error)
+	RPushX(context.Context, *RPushXRequest) (*RPushXResponse, error)
 }
 
 // UnimplementedCommServerServer can be embedded to have forward compatible implementations.
@@ -500,59 +500,59 @@ func (*UnimplementedCommServerServer) Add(context.Context, *AddRequest) (*AddRes
 func (*UnimplementedCommServerServer) Reduce(context.Context, *ReduceRequest) (*ReduceResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Reduce not implemented")
 }
-func (*UnimplementedCommServerServer) Setbit(context.Context, *SetbitRequest) (*SetbitResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Setbit not implemented")
+func (*UnimplementedCommServerServer) SetBit(context.Context, *SetBitRequest) (*SetBitResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SetBit not implemented")
 }
-func (*UnimplementedCommServerServer) Getbit(context.Context, *GetbitRequest) (*GetbitResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Getbit not implemented")
+func (*UnimplementedCommServerServer) GetBit(context.Context, *GetBitRequest) (*GetBitResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetBit not implemented")
 }
-func (*UnimplementedCommServerServer) Getrange(context.Context, *GetrangeRequest) (*GetrangeResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Getrange not implemented")
+func (*UnimplementedCommServerServer) GetRange(context.Context, *GetRangeRequest) (*GetRangeResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetRange not implemented")
 }
-func (*UnimplementedCommServerServer) Getset(context.Context, *GetsetRequest) (*GetsetResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Getset not implemented")
+func (*UnimplementedCommServerServer) GetSet(context.Context, *GetSetRequest) (*GetSetResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetSet not implemented")
 }
-func (*UnimplementedCommServerServer) Strlen(context.Context, *StrlenRequest) (*StrlenResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Strlen not implemented")
+func (*UnimplementedCommServerServer) StrLen(context.Context, *StrLenRequest) (*StrLenResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method StrLen not implemented")
 }
 func (*UnimplementedCommServerServer) Setnx(context.Context, *SetnxRequest) (*SetnxResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Setnx not implemented")
 }
-func (*UnimplementedCommServerServer) Lindex(context.Context, *LindexRequest) (*LindexResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Lindex not implemented")
+func (*UnimplementedCommServerServer) LIndex(context.Context, *LIndexRequest) (*LIndexResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method LIndex not implemented")
 }
-func (*UnimplementedCommServerServer) Llen(context.Context, *LlenRequest) (*LlenResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Llen not implemented")
+func (*UnimplementedCommServerServer) LLen(context.Context, *LLenRequest) (*LLenResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method LLen not implemented")
 }
-func (*UnimplementedCommServerServer) Lpop(context.Context, *LpopRequest) (*LpopResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Lpop not implemented")
+func (*UnimplementedCommServerServer) LPop(context.Context, *LPopRequest) (*LPopResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method LPop not implemented")
 }
-func (*UnimplementedCommServerServer) Lpush(context.Context, *LpushRequest) (*LpushResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Lpush not implemented")
+func (*UnimplementedCommServerServer) LPush(context.Context, *LPushRequest) (*LPushResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method LPush not implemented")
 }
-func (*UnimplementedCommServerServer) Lpushx(context.Context, *LpushxRequest) (*LpushxResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Lpushx not implemented")
+func (*UnimplementedCommServerServer) LPushX(context.Context, *LPushXRequest) (*LPushXResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method LPushX not implemented")
 }
-func (*UnimplementedCommServerServer) Lrange(context.Context, *LrangeRequest) (*LrangeResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Lrange not implemented")
+func (*UnimplementedCommServerServer) LRange(context.Context, *LRangeRequest) (*LRangeResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method LRange not implemented")
 }
-func (*UnimplementedCommServerServer) Lrem(context.Context, *LremRequest) (*LremResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Lrem not implemented")
+func (*UnimplementedCommServerServer) LRem(context.Context, *LRemRequest) (*LRemResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method LRem not implemented")
 }
-func (*UnimplementedCommServerServer) Lset(context.Context, *LsetRequest) (*LsetResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Lset not implemented")
+func (*UnimplementedCommServerServer) LSet(context.Context, *LSetRequest) (*LSetResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method LSet not implemented")
 }
-func (*UnimplementedCommServerServer) Rpop(context.Context, *RpopRequest) (*RpopResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Rpop not implemented")
+func (*UnimplementedCommServerServer) RPop(context.Context, *RPopRequest) (*RPopResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method RPop not implemented")
 }
-func (*UnimplementedCommServerServer) Ltrim(context.Context, *LtrimRequest) (*LtrimResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Ltrim not implemented")
+func (*UnimplementedCommServerServer) LTrim(context.Context, *LTrimRequest) (*LTrimResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method LTrim not implemented")
 }
-func (*UnimplementedCommServerServer) Rpush(context.Context, *RpushRequest) (*RpushResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Rpush not implemented")
+func (*UnimplementedCommServerServer) RPush(context.Context, *RPushRequest) (*RPushResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method RPush not implemented")
 }
-func (*UnimplementedCommServerServer) Rpushx(context.Context, *RpushxRequest) (*RpushxResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Rpushx not implemented")
+func (*UnimplementedCommServerServer) RPushX(context.Context, *RPushXRequest) (*RPushXResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method RPushX not implemented")
 }
 
 func RegisterCommServerServer(s *grpc.Server, srv CommServerServer) {
@@ -631,92 +631,92 @@ func _CommServer_Reduce_Handler(srv interface{}, ctx context.Context, dec func(i
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Setbit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SetbitRequest)
+func _CommServer_SetBit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SetBitRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Setbit(ctx, in)
+		return srv.(CommServerServer).SetBit(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Setbit",
+		FullMethod: "/CommServer/SetBit",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Setbit(ctx, req.(*SetbitRequest))
+		return srv.(CommServerServer).SetBit(ctx, req.(*SetBitRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Getbit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(GetbitRequest)
+func _CommServer_GetBit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetBitRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Getbit(ctx, in)
+		return srv.(CommServerServer).GetBit(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Getbit",
+		FullMethod: "/CommServer/GetBit",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Getbit(ctx, req.(*GetbitRequest))
+		return srv.(CommServerServer).GetBit(ctx, req.(*GetBitRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Getrange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(GetrangeRequest)
+func _CommServer_GetRange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetRangeRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Getrange(ctx, in)
+		return srv.(CommServerServer).GetRange(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Getrange",
+		FullMethod: "/CommServer/GetRange",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Getrange(ctx, req.(*GetrangeRequest))
+		return srv.(CommServerServer).GetRange(ctx, req.(*GetRangeRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Getset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(GetsetRequest)
+func _CommServer_GetSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetSetRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Getset(ctx, in)
+		return srv.(CommServerServer).GetSet(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Getset",
+		FullMethod: "/CommServer/GetSet",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Getset(ctx, req.(*GetsetRequest))
+		return srv.(CommServerServer).GetSet(ctx, req.(*GetSetRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Strlen_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(StrlenRequest)
+func _CommServer_StrLen_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(StrLenRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Strlen(ctx, in)
+		return srv.(CommServerServer).StrLen(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Strlen",
+		FullMethod: "/CommServer/StrLen",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Strlen(ctx, req.(*StrlenRequest))
+		return srv.(CommServerServer).StrLen(ctx, req.(*StrLenRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
@@ -739,218 +739,218 @@ func _CommServer_Setnx_Handler(srv interface{}, ctx context.Context, dec func(in
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Lindex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(LindexRequest)
+func _CommServer_LIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(LIndexRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Lindex(ctx, in)
+		return srv.(CommServerServer).LIndex(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Lindex",
+		FullMethod: "/CommServer/LIndex",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Lindex(ctx, req.(*LindexRequest))
+		return srv.(CommServerServer).LIndex(ctx, req.(*LIndexRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Llen_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(LlenRequest)
+func _CommServer_LLen_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(LLenRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Llen(ctx, in)
+		return srv.(CommServerServer).LLen(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Llen",
+		FullMethod: "/CommServer/LLen",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Llen(ctx, req.(*LlenRequest))
+		return srv.(CommServerServer).LLen(ctx, req.(*LLenRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Lpop_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(LpopRequest)
+func _CommServer_LPop_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(LPopRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Lpop(ctx, in)
+		return srv.(CommServerServer).LPop(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Lpop",
+		FullMethod: "/CommServer/LPop",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Lpop(ctx, req.(*LpopRequest))
+		return srv.(CommServerServer).LPop(ctx, req.(*LPopRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Lpush_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(LpushRequest)
+func _CommServer_LPush_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(LPushRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Lpush(ctx, in)
+		return srv.(CommServerServer).LPush(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Lpush",
+		FullMethod: "/CommServer/LPush",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Lpush(ctx, req.(*LpushRequest))
+		return srv.(CommServerServer).LPush(ctx, req.(*LPushRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Lpushx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(LpushxRequest)
+func _CommServer_LPushX_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(LPushXRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Lpushx(ctx, in)
+		return srv.(CommServerServer).LPushX(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Lpushx",
+		FullMethod: "/CommServer/LPushX",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Lpushx(ctx, req.(*LpushxRequest))
+		return srv.(CommServerServer).LPushX(ctx, req.(*LPushXRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Lrange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(LrangeRequest)
+func _CommServer_LRange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(LRangeRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Lrange(ctx, in)
+		return srv.(CommServerServer).LRange(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Lrange",
+		FullMethod: "/CommServer/LRange",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Lrange(ctx, req.(*LrangeRequest))
+		return srv.(CommServerServer).LRange(ctx, req.(*LRangeRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Lrem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(LremRequest)
+func _CommServer_LRem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(LRemRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Lrem(ctx, in)
+		return srv.(CommServerServer).LRem(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Lrem",
+		FullMethod: "/CommServer/LRem",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Lrem(ctx, req.(*LremRequest))
+		return srv.(CommServerServer).LRem(ctx, req.(*LRemRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Lset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(LsetRequest)
+func _CommServer_LSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(LSetRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Lset(ctx, in)
+		return srv.(CommServerServer).LSet(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Lset",
+		FullMethod: "/CommServer/LSet",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Lset(ctx, req.(*LsetRequest))
+		return srv.(CommServerServer).LSet(ctx, req.(*LSetRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Rpop_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(RpopRequest)
+func _CommServer_RPop_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(RPopRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Rpop(ctx, in)
+		return srv.(CommServerServer).RPop(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Rpop",
+		FullMethod: "/CommServer/RPop",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Rpop(ctx, req.(*RpopRequest))
+		return srv.(CommServerServer).RPop(ctx, req.(*RPopRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Ltrim_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(LtrimRequest)
+func _CommServer_LTrim_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(LTrimRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Ltrim(ctx, in)
+		return srv.(CommServerServer).LTrim(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Ltrim",
+		FullMethod: "/CommServer/LTrim",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Ltrim(ctx, req.(*LtrimRequest))
+		return srv.(CommServerServer).LTrim(ctx, req.(*LTrimRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Rpush_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(RpushRequest)
+func _CommServer_RPush_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(RPushRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Rpush(ctx, in)
+		return srv.(CommServerServer).RPush(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Rpush",
+		FullMethod: "/CommServer/RPush",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Rpush(ctx, req.(*RpushRequest))
+		return srv.(CommServerServer).RPush(ctx, req.(*RPushRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _CommServer_Rpushx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(RpushxRequest)
+func _CommServer_RPushX_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(RPushXRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(CommServerServer).Rpushx(ctx, in)
+		return srv.(CommServerServer).RPushX(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/CommServer/Rpushx",
+		FullMethod: "/CommServer/RPushX",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CommServerServer).Rpushx(ctx, req.(*RpushxRequest))
+		return srv.(CommServerServer).RPushX(ctx, req.(*RPushXRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
@@ -976,76 +976,76 @@ var _CommServer_serviceDesc = grpc.ServiceDesc{
 			Handler:    _CommServer_Reduce_Handler,
 		},
 		{
-			MethodName: "Setbit",
-			Handler:    _CommServer_Setbit_Handler,
+			MethodName: "SetBit",
+			Handler:    _CommServer_SetBit_Handler,
 		},
 		{
-			MethodName: "Getbit",
-			Handler:    _CommServer_Getbit_Handler,
+			MethodName: "GetBit",
+			Handler:    _CommServer_GetBit_Handler,
 		},
 		{
-			MethodName: "Getrange",
-			Handler:    _CommServer_Getrange_Handler,
+			MethodName: "GetRange",
+			Handler:    _CommServer_GetRange_Handler,
 		},
 		{
-			MethodName: "Getset",
-			Handler:    _CommServer_Getset_Handler,
+			MethodName: "GetSet",
+			Handler:    _CommServer_GetSet_Handler,
 		},
 		{
-			MethodName: "Strlen",
-			Handler:    _CommServer_Strlen_Handler,
+			MethodName: "StrLen",
+			Handler:    _CommServer_StrLen_Handler,
 		},
 		{
 			MethodName: "Setnx",
 			Handler:    _CommServer_Setnx_Handler,
 		},
 		{
-			MethodName: "Lindex",
-			Handler:    _CommServer_Lindex_Handler,
+			MethodName: "LIndex",
+			Handler:    _CommServer_LIndex_Handler,
 		},
 		{
-			MethodName: "Llen",
-			Handler:    _CommServer_Llen_Handler,
+			MethodName: "LLen",
+			Handler:    _CommServer_LLen_Handler,
 		},
 		{
-			MethodName: "Lpop",
-			Handler:    _CommServer_Lpop_Handler,
+			MethodName: "LPop",
+			Handler:    _CommServer_LPop_Handler,
 		},
 		{
-			MethodName: "Lpush",
-			Handler:    _CommServer_Lpush_Handler,
+			MethodName: "LPush",
+			Handler:    _CommServer_LPush_Handler,
 		},
 		{
-			MethodName: "Lpushx",
-			Handler:    _CommServer_Lpushx_Handler,
+			MethodName: "LPushX",
+			Handler:    _CommServer_LPushX_Handler,
 		},
 		{
-			MethodName: "Lrange",
-			Handler:    _CommServer_Lrange_Handler,
+			MethodName: "LRange",
+			Handler:    _CommServer_LRange_Handler,
 		},
 		{
-			MethodName: "Lrem",
-			Handler:    _CommServer_Lrem_Handler,
+			MethodName: "LRem",
+			Handler:    _CommServer_LRem_Handler,
 		},
 		{
-			MethodName: "Lset",
-			Handler:    _CommServer_Lset_Handler,
+			MethodName: "LSet",
+			Handler:    _CommServer_LSet_Handler,
 		},
 		{
-			MethodName: "Rpop",
-			Handler:    _CommServer_Rpop_Handler,
+			MethodName: "RPop",
+			Handler:    _CommServer_RPop_Handler,
 		},
 		{
-			MethodName: "Ltrim",
-			Handler:    _CommServer_Ltrim_Handler,
+			MethodName: "LTrim",
+			Handler:    _CommServer_LTrim_Handler,
 		},
 		{
-			MethodName: "Rpush",
-			Handler:    _CommServer_Rpush_Handler,
+			MethodName: "RPush",
+			Handler:    _CommServer_RPush_Handler,
 		},
 		{
-			MethodName: "Rpushx",
-			Handler:    _CommServer_Rpushx_Handler,
+			MethodName: "RPushX",
+			Handler:    _CommServer_RPushX_Handler,
 		},
 	},
 	Streams:  []grpc.StreamDesc{},
diff --git a/pkg/proto/stringx.pb.go b/pkg/proto/stringx.pb.go
index c8641d5..787af75 100644
--- a/pkg/proto/stringx.pb.go
+++ b/pkg/proto/stringx.pb.go
@@ -420,515 +420,6 @@ func (x *ReduceResponse) GetResult() string {
 	return ""
 }
 
-type SetbitRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Key   *BaseKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
-	Val   bool     `protobuf:"varint,2,opt,name=val,proto3" json:"val,omitempty"`
-	Offer int32    `protobuf:"varint,3,opt,name=offer,proto3" json:"offer,omitempty"`
-}
-
-func (x *SetbitRequest) Reset() {
-	*x = SetbitRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_stringx_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetbitRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetbitRequest) ProtoMessage() {}
-
-func (x *SetbitRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_stringx_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetbitRequest.ProtoReflect.Descriptor instead.
-func (*SetbitRequest) Descriptor() ([]byte, []int) {
-	return file_stringx_proto_rawDescGZIP(), []int{8}
-}
-
-func (x *SetbitRequest) GetKey() *BaseKey {
-	if x != nil {
-		return x.Key
-	}
-	return nil
-}
-
-func (x *SetbitRequest) GetVal() bool {
-	if x != nil {
-		return x.Val
-	}
-	return false
-}
-
-func (x *SetbitRequest) GetOffer() int32 {
-	if x != nil {
-		return x.Offer
-	}
-	return 0
-}
-
-type SetbitResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-}
-
-func (x *SetbitResponse) Reset() {
-	*x = SetbitResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_stringx_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *SetbitResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SetbitResponse) ProtoMessage() {}
-
-func (x *SetbitResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_stringx_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use SetbitResponse.ProtoReflect.Descriptor instead.
-func (*SetbitResponse) Descriptor() ([]byte, []int) {
-	return file_stringx_proto_rawDescGZIP(), []int{9}
-}
-
-type GetbitRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Key   *BaseKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
-	Offer int32    `protobuf:"varint,3,opt,name=offer,proto3" json:"offer,omitempty"`
-}
-
-func (x *GetbitRequest) Reset() {
-	*x = GetbitRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_stringx_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetbitRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetbitRequest) ProtoMessage() {}
-
-func (x *GetbitRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_stringx_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetbitRequest.ProtoReflect.Descriptor instead.
-func (*GetbitRequest) Descriptor() ([]byte, []int) {
-	return file_stringx_proto_rawDescGZIP(), []int{10}
-}
-
-func (x *GetbitRequest) GetKey() *BaseKey {
-	if x != nil {
-		return x.Key
-	}
-	return nil
-}
-
-func (x *GetbitRequest) GetOffer() int32 {
-	if x != nil {
-		return x.Offer
-	}
-	return 0
-}
-
-type GetbitResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Val bool `protobuf:"varint,2,opt,name=val,proto3" json:"val,omitempty"`
-}
-
-func (x *GetbitResponse) Reset() {
-	*x = GetbitResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_stringx_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetbitResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetbitResponse) ProtoMessage() {}
-
-func (x *GetbitResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_stringx_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetbitResponse.ProtoReflect.Descriptor instead.
-func (*GetbitResponse) Descriptor() ([]byte, []int) {
-	return file_stringx_proto_rawDescGZIP(), []int{11}
-}
-
-func (x *GetbitResponse) GetVal() bool {
-	if x != nil {
-		return x.Val
-	}
-	return false
-}
-
-type GetrangeRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Key   *BaseKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
-	Start int32    `protobuf:"varint,2,opt,name=start,proto3" json:"start,omitempty"`
-	End   int32    `protobuf:"varint,3,opt,name=end,proto3" json:"end,omitempty"`
-}
-
-func (x *GetrangeRequest) Reset() {
-	*x = GetrangeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_stringx_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetrangeRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetrangeRequest) ProtoMessage() {}
-
-func (x *GetrangeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_stringx_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetrangeRequest.ProtoReflect.Descriptor instead.
-func (*GetrangeRequest) Descriptor() ([]byte, []int) {
-	return file_stringx_proto_rawDescGZIP(), []int{12}
-}
-
-func (x *GetrangeRequest) GetKey() *BaseKey {
-	if x != nil {
-		return x.Key
-	}
-	return nil
-}
-
-func (x *GetrangeRequest) GetStart() int32 {
-	if x != nil {
-		return x.Start
-	}
-	return 0
-}
-
-func (x *GetrangeRequest) GetEnd() int32 {
-	if x != nil {
-		return x.End
-	}
-	return 0
-}
-
-type GetrangeResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Result string `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
-}
-
-func (x *GetrangeResponse) Reset() {
-	*x = GetrangeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_stringx_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetrangeResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetrangeResponse) ProtoMessage() {}
-
-func (x *GetrangeResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_stringx_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetrangeResponse.ProtoReflect.Descriptor instead.
-func (*GetrangeResponse) Descriptor() ([]byte, []int) {
-	return file_stringx_proto_rawDescGZIP(), []int{13}
-}
-
-func (x *GetrangeResponse) GetResult() string {
-	if x != nil {
-		return x.Result
-	}
-	return ""
-}
-
-type GetsetRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Key *BaseKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
-	Val string   `protobuf:"bytes,2,opt,name=val,proto3" json:"val,omitempty"`
-}
-
-func (x *GetsetRequest) Reset() {
-	*x = GetsetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_stringx_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetsetRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetsetRequest) ProtoMessage() {}
-
-func (x *GetsetRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_stringx_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetsetRequest.ProtoReflect.Descriptor instead.
-func (*GetsetRequest) Descriptor() ([]byte, []int) {
-	return file_stringx_proto_rawDescGZIP(), []int{14}
-}
-
-func (x *GetsetRequest) GetKey() *BaseKey {
-	if x != nil {
-		return x.Key
-	}
-	return nil
-}
-
-func (x *GetsetRequest) GetVal() string {
-	if x != nil {
-		return x.Val
-	}
-	return ""
-}
-
-type GetsetResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Result string `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
-}
-
-func (x *GetsetResponse) Reset() {
-	*x = GetsetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_stringx_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *GetsetResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetsetResponse) ProtoMessage() {}
-
-func (x *GetsetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_stringx_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetsetResponse.ProtoReflect.Descriptor instead.
-func (*GetsetResponse) Descriptor() ([]byte, []int) {
-	return file_stringx_proto_rawDescGZIP(), []int{15}
-}
-
-func (x *GetsetResponse) GetResult() string {
-	if x != nil {
-		return x.Result
-	}
-	return ""
-}
-
-type StrlenRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Key *BaseKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
-}
-
-func (x *StrlenRequest) Reset() {
-	*x = StrlenRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_stringx_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *StrlenRequest) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StrlenRequest) ProtoMessage() {}
-
-func (x *StrlenRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_stringx_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StrlenRequest.ProtoReflect.Descriptor instead.
-func (*StrlenRequest) Descriptor() ([]byte, []int) {
-	return file_stringx_proto_rawDescGZIP(), []int{16}
-}
-
-func (x *StrlenRequest) GetKey() *BaseKey {
-	if x != nil {
-		return x.Key
-	}
-	return nil
-}
-
-type StrlenResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Length int32 `protobuf:"varint,1,opt,name=length,proto3" json:"length,omitempty"`
-}
-
-func (x *StrlenResponse) Reset() {
-	*x = StrlenResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_stringx_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *StrlenResponse) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*StrlenResponse) ProtoMessage() {}
-
-func (x *StrlenResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_stringx_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use StrlenResponse.ProtoReflect.Descriptor instead.
-func (*StrlenResponse) Descriptor() ([]byte, []int) {
-	return file_stringx_proto_rawDescGZIP(), []int{17}
-}
-
-func (x *StrlenResponse) GetLength() int32 {
-	if x != nil {
-		return x.Length
-	}
-	return 0
-}
-
 type SetnxRequest struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -941,7 +432,7 @@ type SetnxRequest struct {
 func (x *SetnxRequest) Reset() {
 	*x = SetnxRequest{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_stringx_proto_msgTypes[18]
+		mi := &file_stringx_proto_msgTypes[8]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -954,7 +445,7 @@ func (x *SetnxRequest) String() string {
 func (*SetnxRequest) ProtoMessage() {}
 
 func (x *SetnxRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_stringx_proto_msgTypes[18]
+	mi := &file_stringx_proto_msgTypes[8]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -967,7 +458,7 @@ func (x *SetnxRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SetnxRequest.ProtoReflect.Descriptor instead.
 func (*SetnxRequest) Descriptor() ([]byte, []int) {
-	return file_stringx_proto_rawDescGZIP(), []int{18}
+	return file_stringx_proto_rawDescGZIP(), []int{8}
 }
 
 func (x *SetnxRequest) GetKey() *BaseKey {
@@ -993,7 +484,7 @@ type SetnxResponse struct {
 func (x *SetnxResponse) Reset() {
 	*x = SetnxResponse{}
 	if protoimpl.UnsafeEnabled {
-		mi := &file_stringx_proto_msgTypes[19]
+		mi := &file_stringx_proto_msgTypes[9]
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		ms.StoreMessageInfo(mi)
 	}
@@ -1006,7 +497,7 @@ func (x *SetnxResponse) String() string {
 func (*SetnxResponse) ProtoMessage() {}
 
 func (x *SetnxResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_stringx_proto_msgTypes[19]
+	mi := &file_stringx_proto_msgTypes[9]
 	if protoimpl.UnsafeEnabled && x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
@@ -1019,9 +510,527 @@ func (x *SetnxResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SetnxResponse.ProtoReflect.Descriptor instead.
 func (*SetnxResponse) Descriptor() ([]byte, []int) {
+	return file_stringx_proto_rawDescGZIP(), []int{9}
+}
+
+type SetBitRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Key   *BaseKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+	Val   bool     `protobuf:"varint,2,opt,name=val,proto3" json:"val,omitempty"`
+	Offer int32    `protobuf:"varint,3,opt,name=offer,proto3" json:"offer,omitempty"`
+}
+
+func (x *SetBitRequest) Reset() {
+	*x = SetBitRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_stringx_proto_msgTypes[10]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *SetBitRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SetBitRequest) ProtoMessage() {}
+
+func (x *SetBitRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_stringx_proto_msgTypes[10]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SetBitRequest.ProtoReflect.Descriptor instead.
+func (*SetBitRequest) Descriptor() ([]byte, []int) {
+	return file_stringx_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *SetBitRequest) GetKey() *BaseKey {
+	if x != nil {
+		return x.Key
+	}
+	return nil
+}
+
+func (x *SetBitRequest) GetVal() bool {
+	if x != nil {
+		return x.Val
+	}
+	return false
+}
+
+func (x *SetBitRequest) GetOffer() int32 {
+	if x != nil {
+		return x.Offer
+	}
+	return 0
+}
+
+type SetBitResponse struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Result string `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
+}
+
+func (x *SetBitResponse) Reset() {
+	*x = SetBitResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_stringx_proto_msgTypes[11]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *SetBitResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SetBitResponse) ProtoMessage() {}
+
+func (x *SetBitResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_stringx_proto_msgTypes[11]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SetBitResponse.ProtoReflect.Descriptor instead.
+func (*SetBitResponse) Descriptor() ([]byte, []int) {
+	return file_stringx_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *SetBitResponse) GetResult() string {
+	if x != nil {
+		return x.Result
+	}
+	return ""
+}
+
+type GetBitRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Key   *BaseKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+	Offer int32    `protobuf:"varint,2,opt,name=offer,proto3" json:"offer,omitempty"`
+}
+
+func (x *GetBitRequest) Reset() {
+	*x = GetBitRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_stringx_proto_msgTypes[12]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *GetBitRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetBitRequest) ProtoMessage() {}
+
+func (x *GetBitRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_stringx_proto_msgTypes[12]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetBitRequest.ProtoReflect.Descriptor instead.
+func (*GetBitRequest) Descriptor() ([]byte, []int) {
+	return file_stringx_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *GetBitRequest) GetKey() *BaseKey {
+	if x != nil {
+		return x.Key
+	}
+	return nil
+}
+
+func (x *GetBitRequest) GetOffer() int32 {
+	if x != nil {
+		return x.Offer
+	}
+	return 0
+}
+
+type GetBitResponse struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Val bool `protobuf:"varint,1,opt,name=val,proto3" json:"val,omitempty"`
+}
+
+func (x *GetBitResponse) Reset() {
+	*x = GetBitResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_stringx_proto_msgTypes[13]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *GetBitResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetBitResponse) ProtoMessage() {}
+
+func (x *GetBitResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_stringx_proto_msgTypes[13]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetBitResponse.ProtoReflect.Descriptor instead.
+func (*GetBitResponse) Descriptor() ([]byte, []int) {
+	return file_stringx_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *GetBitResponse) GetVal() bool {
+	if x != nil {
+		return x.Val
+	}
+	return false
+}
+
+type GetRangeRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Key   *BaseKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+	Start int32    `protobuf:"varint,2,opt,name=start,proto3" json:"start,omitempty"`
+	End   int32    `protobuf:"varint,3,opt,name=end,proto3" json:"end,omitempty"`
+}
+
+func (x *GetRangeRequest) Reset() {
+	*x = GetRangeRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_stringx_proto_msgTypes[14]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *GetRangeRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetRangeRequest) ProtoMessage() {}
+
+func (x *GetRangeRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_stringx_proto_msgTypes[14]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetRangeRequest.ProtoReflect.Descriptor instead.
+func (*GetRangeRequest) Descriptor() ([]byte, []int) {
+	return file_stringx_proto_rawDescGZIP(), []int{14}
+}
+
+func (x *GetRangeRequest) GetKey() *BaseKey {
+	if x != nil {
+		return x.Key
+	}
+	return nil
+}
+
+func (x *GetRangeRequest) GetStart() int32 {
+	if x != nil {
+		return x.Start
+	}
+	return 0
+}
+
+func (x *GetRangeRequest) GetEnd() int32 {
+	if x != nil {
+		return x.End
+	}
+	return 0
+}
+
+type GetRangeResponse struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Result string `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
+}
+
+func (x *GetRangeResponse) Reset() {
+	*x = GetRangeResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_stringx_proto_msgTypes[15]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *GetRangeResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetRangeResponse) ProtoMessage() {}
+
+func (x *GetRangeResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_stringx_proto_msgTypes[15]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetRangeResponse.ProtoReflect.Descriptor instead.
+func (*GetRangeResponse) Descriptor() ([]byte, []int) {
+	return file_stringx_proto_rawDescGZIP(), []int{15}
+}
+
+func (x *GetRangeResponse) GetResult() string {
+	if x != nil {
+		return x.Result
+	}
+	return ""
+}
+
+type GetSetRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Key *BaseKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+	Val string   `protobuf:"bytes,2,opt,name=val,proto3" json:"val,omitempty"`
+}
+
+func (x *GetSetRequest) Reset() {
+	*x = GetSetRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_stringx_proto_msgTypes[16]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *GetSetRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetSetRequest) ProtoMessage() {}
+
+func (x *GetSetRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_stringx_proto_msgTypes[16]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetSetRequest.ProtoReflect.Descriptor instead.
+func (*GetSetRequest) Descriptor() ([]byte, []int) {
+	return file_stringx_proto_rawDescGZIP(), []int{16}
+}
+
+func (x *GetSetRequest) GetKey() *BaseKey {
+	if x != nil {
+		return x.Key
+	}
+	return nil
+}
+
+func (x *GetSetRequest) GetVal() string {
+	if x != nil {
+		return x.Val
+	}
+	return ""
+}
+
+type GetSetResponse struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Result string `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
+}
+
+func (x *GetSetResponse) Reset() {
+	*x = GetSetResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_stringx_proto_msgTypes[17]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *GetSetResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetSetResponse) ProtoMessage() {}
+
+func (x *GetSetResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_stringx_proto_msgTypes[17]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetSetResponse.ProtoReflect.Descriptor instead.
+func (*GetSetResponse) Descriptor() ([]byte, []int) {
+	return file_stringx_proto_rawDescGZIP(), []int{17}
+}
+
+func (x *GetSetResponse) GetResult() string {
+	if x != nil {
+		return x.Result
+	}
+	return ""
+}
+
+type StrLenRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Key *BaseKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+}
+
+func (x *StrLenRequest) Reset() {
+	*x = StrLenRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_stringx_proto_msgTypes[18]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *StrLenRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StrLenRequest) ProtoMessage() {}
+
+func (x *StrLenRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_stringx_proto_msgTypes[18]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use StrLenRequest.ProtoReflect.Descriptor instead.
+func (*StrLenRequest) Descriptor() ([]byte, []int) {
+	return file_stringx_proto_rawDescGZIP(), []int{18}
+}
+
+func (x *StrLenRequest) GetKey() *BaseKey {
+	if x != nil {
+		return x.Key
+	}
+	return nil
+}
+
+type StrLenResponse struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Length int32 `protobuf:"varint,1,opt,name=length,proto3" json:"length,omitempty"`
+}
+
+func (x *StrLenResponse) Reset() {
+	*x = StrLenResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_stringx_proto_msgTypes[19]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *StrLenResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StrLenResponse) ProtoMessage() {}
+
+func (x *StrLenResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_stringx_proto_msgTypes[19]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use StrLenResponse.ProtoReflect.Descriptor instead.
+func (*StrLenResponse) Descriptor() ([]byte, []int) {
 	return file_stringx_proto_rawDescGZIP(), []int{19}
 }
 
+func (x *StrLenResponse) GetLength() int32 {
+	if x != nil {
+		return x.Length
+	}
+	return 0
+}
+
 var File_stringx_proto protoreflect.FileDescriptor
 
 var file_stringx_proto_rawDesc = []byte{
@@ -1051,46 +1060,48 @@ var file_stringx_proto_rawDesc = []byte{
 	0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x61,
 	0x6c, 0x22, 0x28, 0x0a, 0x0e, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
 	0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x53, 0x0a, 0x0d, 0x53,
-	0x65, 0x74, 0x62, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03,
-	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65,
-	0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x66,
-	0x66, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6f, 0x66, 0x66, 0x65, 0x72,
-	0x22, 0x10, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x62, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x22, 0x41, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x62, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75,
+	0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x3c, 0x0a, 0x0c, 0x53,
+	0x65, 0x74, 0x6e, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b,
+	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b,
+	0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x0f, 0x0a, 0x0d, 0x53, 0x65, 0x74,
+	0x6e, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x0a, 0x0d, 0x53, 0x65,
+	0x74, 0x42, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b,
+	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b,
+	0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x66, 0x66,
+	0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x22,
+	0x28, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x42, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x41, 0x0a, 0x0d, 0x47, 0x65, 0x74,
+	0x42, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b, 0x65,
+	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x65,
+	0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x22, 0x22, 0x0a, 0x0e,
+	0x47, 0x65, 0x74, 0x42, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10,
+	0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x76, 0x61, 0x6c,
+	0x22, 0x55, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75,
 	0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
 	0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
-	0x14, 0x0a, 0x05, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
-	0x6f, 0x66, 0x66, 0x65, 0x72, 0x22, 0x22, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x62, 0x69, 0x74, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x55, 0x0a, 0x0f, 0x47, 0x65, 0x74,
-	0x72, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03,
-	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65,
-	0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72,
-	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10,
-	0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64,
-	0x22, 0x2a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x3d, 0x0a, 0x0d,
-	0x47, 0x65, 0x74, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a,
+	0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
+	0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01,
+	0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x2a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x61,
+	0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72,
+	0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73,
+	0x75, 0x6c, 0x74, 0x22, 0x3d, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79,
+	0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76,
+	0x61, 0x6c, 0x22, 0x28, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2b, 0x0a, 0x0d,
+	0x53, 0x74, 0x72, 0x4c, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a,
 	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73,
-	0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x28, 0x0a, 0x0e, 0x47,
-	0x65, 0x74, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a,
-	0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72,
-	0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2b, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x6c, 0x65, 0x6e, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b,
-	0x65, 0x79, 0x22, 0x28, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x6c, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x3c, 0x0a, 0x0c,
-	0x53, 0x65, 0x74, 0x6e, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x03,
-	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x42, 0x61, 0x73, 0x65,
-	0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x61, 0x6c, 0x22, 0x0f, 0x0a, 0x0d, 0x53, 0x65,
-	0x74, 0x6e, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x70,
-	0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x28, 0x0a, 0x0e, 0x53, 0x74, 0x72,
+	0x4c, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c,
+	0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e,
+	0x67, 0x74, 0x68, 0x42, 0x0b, 0x5a, 0x09, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
@@ -1115,18 +1126,18 @@ var file_stringx_proto_goTypes = []interface{}{
 	(*AddResponse)(nil),      // 5: AddResponse
 	(*ReduceRequest)(nil),    // 6: ReduceRequest
 	(*ReduceResponse)(nil),   // 7: ReduceResponse
-	(*SetbitRequest)(nil),    // 8: SetbitRequest
-	(*SetbitResponse)(nil),   // 9: SetbitResponse
-	(*GetbitRequest)(nil),    // 10: GetbitRequest
-	(*GetbitResponse)(nil),   // 11: GetbitResponse
-	(*GetrangeRequest)(nil),  // 12: GetrangeRequest
-	(*GetrangeResponse)(nil), // 13: GetrangeResponse
-	(*GetsetRequest)(nil),    // 14: GetsetRequest
-	(*GetsetResponse)(nil),   // 15: GetsetResponse
-	(*StrlenRequest)(nil),    // 16: StrlenRequest
-	(*StrlenResponse)(nil),   // 17: StrlenResponse
-	(*SetnxRequest)(nil),     // 18: SetnxRequest
-	(*SetnxResponse)(nil),    // 19: SetnxResponse
+	(*SetnxRequest)(nil),     // 8: SetnxRequest
+	(*SetnxResponse)(nil),    // 9: SetnxResponse
+	(*SetBitRequest)(nil),    // 10: SetBitRequest
+	(*SetBitResponse)(nil),   // 11: SetBitResponse
+	(*GetBitRequest)(nil),    // 12: GetBitRequest
+	(*GetBitResponse)(nil),   // 13: GetBitResponse
+	(*GetRangeRequest)(nil),  // 14: GetRangeRequest
+	(*GetRangeResponse)(nil), // 15: GetRangeResponse
+	(*GetSetRequest)(nil),    // 16: GetSetRequest
+	(*GetSetResponse)(nil),   // 17: GetSetResponse
+	(*StrLenRequest)(nil),    // 18: StrLenRequest
+	(*StrLenResponse)(nil),   // 19: StrLenResponse
 	(*BaseKey)(nil),          // 20: BaseKey
 }
 var file_stringx_proto_depIdxs = []int32{
@@ -1134,12 +1145,12 @@ var file_stringx_proto_depIdxs = []int32{
 	20, // 1: GetRequest.key:type_name -> BaseKey
 	20, // 2: AddRequest.key:type_name -> BaseKey
 	20, // 3: ReduceRequest.key:type_name -> BaseKey
-	20, // 4: SetbitRequest.key:type_name -> BaseKey
-	20, // 5: GetbitRequest.key:type_name -> BaseKey
-	20, // 6: GetrangeRequest.key:type_name -> BaseKey
-	20, // 7: GetsetRequest.key:type_name -> BaseKey
-	20, // 8: StrlenRequest.key:type_name -> BaseKey
-	20, // 9: SetnxRequest.key:type_name -> BaseKey
+	20, // 4: SetnxRequest.key:type_name -> BaseKey
+	20, // 5: SetBitRequest.key:type_name -> BaseKey
+	20, // 6: GetBitRequest.key:type_name -> BaseKey
+	20, // 7: GetRangeRequest.key:type_name -> BaseKey
+	20, // 8: GetSetRequest.key:type_name -> BaseKey
+	20, // 9: StrLenRequest.key:type_name -> BaseKey
 	10, // [10:10] is the sub-list for method output_type
 	10, // [10:10] is the sub-list for method input_type
 	10, // [10:10] is the sub-list for extension type_name
@@ -1251,126 +1262,6 @@ func file_stringx_proto_init() {
 			}
 		}
 		file_stringx_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetbitRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_stringx_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetbitResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_stringx_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetbitRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_stringx_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetbitResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_stringx_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetrangeRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_stringx_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetrangeResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_stringx_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetsetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_stringx_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetsetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_stringx_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StrlenRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_stringx_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StrlenResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_stringx_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*SetnxRequest); i {
 			case 0:
 				return &v.state
@@ -1382,7 +1273,7 @@ func file_stringx_proto_init() {
 				return nil
 			}
 		}
-		file_stringx_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
+		file_stringx_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
 			switch v := v.(*SetnxResponse); i {
 			case 0:
 				return &v.state
@@ -1394,6 +1285,126 @@ func file_stringx_proto_init() {
 				return nil
 			}
 		}
+		file_stringx_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*SetBitRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_stringx_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*SetBitResponse); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_stringx_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*GetBitRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_stringx_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*GetBitResponse); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_stringx_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*GetRangeRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_stringx_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*GetRangeResponse); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_stringx_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*GetSetRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_stringx_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*GetSetResponse); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_stringx_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*StrLenRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_stringx_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*StrLenResponse); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
 	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
diff --git a/protobuf/listx.proto b/protobuf/listx.proto
index df3add8..f6b61be 100644
--- a/protobuf/listx.proto
+++ b/protobuf/listx.proto
@@ -2,108 +2,108 @@ syntax = "proto3";
 import "base.proto";
 option go_package = "pkg/proto";
 
-message LindexRequest {
+message LIndexRequest {
   BaseKey key = 1;
   int32 index = 2;
 }
 
-message LindexResponse {
+message LIndexResponse {
   string result = 1;
 }
 
-message LlenRequest {
+message LLenRequest {
   BaseKey key = 1;
 }
 
-message LlenResponse {
+message LLenResponse {
   int32 length = 1;
 }
 
-message LpopRequest {
+message LPopRequest {
   BaseKey key = 1;
   int32 count = 2;
 }
 
-message LpopResponse {
+message LPopResponse {
   repeated string results = 1;
 }
 
-message LpushRequest {
+message LPushRequest {
   BaseKey key = 1;
   repeated string values = 2;
 }
 
-message LpushResponse {
+message LPushResponse {
 }
 
-message LpushxRequest {
+message LPushXRequest {
   BaseKey key = 1;
   repeated string values = 2;
 }
 
-message LpushxResponse {
+message LPushXResponse {
 }
 
-message LrangeRequest {
+message LRangeRequest {
   BaseKey key = 1;
   int32 start = 2;
   int32 end = 3;
 }
 
-message LrangeResponse {
+message LRangeResponse {
   repeated string values = 2;
 }
 
-message LremRequest {
+message LRemRequest {
   BaseKey key = 1;
   // count > 0 头搜索,count < 0 尾搜索
   int32 count = 2;
   string value = 3;
 }
 
-message LremResponse {
+message LRemResponse {
   int32 count = 1;
 }
 
-message LsetRequest {
+message LSetRequest {
   BaseKey key = 1;
   int32 index = 2;
   string value = 3;
 }
 
-message LsetResponse {
+message LSetResponse {
 }
 
-message RpopRequest {
+message RPopRequest {
   BaseKey key = 1;
   int32 count = 2;
 }
 
-message RpopResponse {
+message RPopResponse {
   repeated string result = 1;
 }
 
-message LtrimRequest {
+message LTrimRequest {
   BaseKey key = 1;
   int32 start = 2;
   int32 end = 3;
 }
 
-message LtrimResponse {
+message LTrimResponse {
 }
 
-message RpushRequest {
+message RPushRequest {
   BaseKey key = 1;
   repeated string values = 2;
 }
 
-message RpushResponse {
+message RPushResponse {
 }
 
-message RpushxRequest {
+message RPushXRequest {
   BaseKey key = 1;
   repeated string values = 2;
 }
 
-message RpushxResponse {
+message RPushXResponse {
 }
diff --git a/protobuf/storage.proto b/protobuf/storage.proto
index 6c0d976..281f436 100644
--- a/protobuf/storage.proto
+++ b/protobuf/storage.proto
@@ -14,22 +14,22 @@ service CommServer {
   rpc Get (GetRequest) returns (GetResponse);
   rpc Add (AddRequest) returns (AddResponse);
   rpc Reduce (ReduceRequest) returns (ReduceResponse);
-  rpc Setbit (SetbitRequest) returns (SetbitResponse);
-  rpc Getbit (GetbitRequest) returns (GetbitResponse);
-  rpc Getrange (GetrangeRequest) returns (GetrangeResponse);
-  rpc Getset (GetsetRequest) returns (GetsetResponse);
-  rpc Strlen (StrlenRequest) returns (StrlenResponse);
+  rpc SetBit (SetBitRequest) returns (SetBitResponse);
+  rpc GetBit (GetBitRequest) returns (GetBitResponse);
+  rpc GetRange (GetRangeRequest) returns (GetRangeResponse);
+  rpc GetSet (GetSetRequest) returns (GetSetResponse);
+  rpc StrLen (StrLenRequest) returns (StrLenResponse);
   rpc Setnx (SetnxRequest) returns (SetnxResponse);
-  rpc Lindex (LindexRequest) returns (LindexResponse);
-  rpc Llen (LlenRequest) returns (LlenResponse);
-  rpc Lpop (LpopRequest) returns (LpopResponse);
-  rpc Lpush (LpushRequest) returns (LpushResponse);
-  rpc Lpushx (LpushxRequest) returns (LpushxResponse);
-  rpc Lrange (LrangeRequest) returns (LrangeResponse);
-  rpc Lrem (LremRequest) returns (LremResponse);
-  rpc Lset (LsetRequest) returns (LsetResponse);
-  rpc Rpop (RpopRequest) returns (RpopResponse);
-  rpc Ltrim (LtrimRequest) returns (LtrimResponse);
-  rpc Rpush (RpushRequest) returns (RpushResponse);
-  rpc Rpushx (RpushxRequest) returns (RpushxResponse);
+  rpc LIndex (LIndexRequest) returns (LIndexResponse);
+  rpc LLen (LLenRequest) returns (LLenResponse);
+  rpc LPop (LPopRequest) returns (LPopResponse);
+  rpc LPush (LPushRequest) returns (LPushResponse);
+  rpc LPushX (LPushXRequest) returns (LPushXResponse);
+  rpc LRange (LRangeRequest) returns (LRangeResponse);
+  rpc LRem (LRemRequest) returns (LRemResponse);
+  rpc LSet (LSetRequest) returns (LSetResponse);
+  rpc RPop (RPopRequest) returns (RPopResponse);
+  rpc LTrim (LTrimRequest) returns (LTrimResponse);
+  rpc RPush (RPushRequest) returns (RPushResponse);
+  rpc RPushX (RPushXRequest) returns (RPushXResponse);
 }
\ No newline at end of file
diff --git a/protobuf/stringx.proto b/protobuf/stringx.proto
index f08e66e..cd0d175 100644
--- a/protobuf/stringx.proto
+++ b/protobuf/stringx.proto
@@ -37,50 +37,6 @@ message ReduceResponse {
   string result = 2;
 }
 
-message SetbitRequest {
-  BaseKey key = 1;
-  bool val = 2;
-  int32 offer = 3;
-}
-
-message SetbitResponse {
-}
-
-message GetbitRequest {
-  BaseKey key = 1;
-  int32 offer = 3;
-}
-
-message GetbitResponse {
-  bool val = 2;
-}
-
-message GetrangeRequest {
-  BaseKey key = 1;
-  int32 start = 2;
-  int32 end = 3;
-}
-
-message GetrangeResponse {
-  string result = 2;
-}
-
-message GetsetRequest {
-  BaseKey key = 1;
-  string val = 2;
-}
-
-message GetsetResponse {
-  string result = 2;
-}
-
-message StrlenRequest {
-  BaseKey key = 1;
-}
-
-message StrlenResponse {
-  int32 length = 1;
-}
 
 message SetnxRequest {
   BaseKey key = 1;
@@ -89,3 +45,49 @@ message SetnxRequest {
 
 message SetnxResponse {
 }
+
+message SetBitRequest {
+  BaseKey key = 1;
+  bool val = 2;
+  int32 offer = 3;
+}
+
+message SetBitResponse {
+  string result = 2;
+}
+
+message GetBitRequest {
+  BaseKey key = 1;
+  int32 offer = 2;
+}
+
+message GetBitResponse {
+  bool val = 1;
+}
+
+message GetRangeRequest {
+  BaseKey key = 1;
+  int32 start = 2;
+  int32 end = 3;
+}
+
+message GetRangeResponse {
+  string result = 1;
+}
+
+message GetSetRequest {
+  BaseKey key = 1;
+  string val = 2;
+}
+
+message GetSetResponse {
+  string result = 1;
+}
+
+message StrLenRequest {
+  BaseKey key = 1;
+}
+
+message StrLenResponse {
+  int32 length = 1;
+}