优化排行榜RankService,支持RPC接口新增排行榜功能

This commit is contained in:
orgin
2022-11-23 17:22:58 +08:00
parent 975cf93d58
commit afb04cac7f
6 changed files with 145 additions and 134 deletions

View File

@@ -161,10 +161,11 @@ func (m *RankPosData) GetData() []byte {
// RankList 排行榜数据
type RankList struct {
RankId uint64 `protobuf:"varint,1,opt,name=RankId,proto3" json:"RankId,omitempty"`
SkipListLevel int32 `protobuf:"varint,2,opt,name=SkipListLevel,proto3" json:"SkipListLevel,omitempty"`
IsDec bool `protobuf:"varint,3,opt,name=IsDec,proto3" json:"IsDec,omitempty"`
MaxRank uint64 `protobuf:"varint,4,opt,name=MaxRank,proto3" json:"MaxRank,omitempty"`
ExpireMs int64 `protobuf:"varint,5,opt,name=ExpireMs,proto3" json:"ExpireMs,omitempty"`
RankName string `protobuf:"bytes,2,opt,name=RankName,proto3" json:"RankName,omitempty"`
SkipListLevel int32 `protobuf:"varint,3,opt,name=SkipListLevel,proto3" json:"SkipListLevel,omitempty"`
IsDec bool `protobuf:"varint,4,opt,name=IsDec,proto3" json:"IsDec,omitempty"`
MaxRank uint64 `protobuf:"varint,5,opt,name=MaxRank,proto3" json:"MaxRank,omitempty"`
ExpireMs int64 `protobuf:"varint,6,opt,name=ExpireMs,proto3" json:"ExpireMs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -210,6 +211,13 @@ func (m *RankList) GetRankId() uint64 {
return 0
}
func (m *RankList) GetRankName() string {
if m != nil {
return m.RankName
}
return ""
}
func (m *RankList) GetSkipListLevel() int32 {
if m != nil {
return m.SkipListLevel
@@ -727,38 +735,39 @@ func init() {
func init() { proto.RegisterFile("proto/rpcproto/rank.proto", fileDescriptor_d5b64eda47521620) }
var fileDescriptor_d5b64eda47521620 = []byte{
// 489 bytes of a gzipped FileDescriptorProto
// 502 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0x51, 0x8b, 0xd3, 0x40,
0x10, 0x66, 0x9b, 0xe4, 0x5a, 0x27, 0x57, 0xac, 0xab, 0x48, 0x14, 0x29, 0x61, 0x11, 0x2c, 0x3e,
0x54, 0x54, 0xf0, 0x41, 0x11, 0xed, 0x59, 0x85, 0xe3, 0x5a, 0x90, 0x2d, 0xbe, 0xdc, 0x5b, 0xcc,
0xae, 0x10, 0x5a, 0x9b, 0x65, 0xb3, 0x77, 0x5c, 0xff, 0x87, 0x8f, 0xfe, 0x20, 0x1f, 0xfd, 0x09,
0xd2, 0x5f, 0x22, 0xb3, 0xc9, 0xa6, 0xc9, 0x71, 0xb9, 0xa7, 0xce, 0x37, 0x33, 0x3b, 0xdf, 0xd7,
0xf9, 0xa6, 0x85, 0x47, 0x4a, 0xe7, 0x26, 0x7f, 0xa1, 0x55, 0x5a, 0x05, 0xc9, 0x76, 0x3d, 0xb5,
0x21, 0xf5, 0xb4, 0x4a, 0xd9, 0x02, 0x06, 0x3c, 0xd9, 0xae, 0xe7, 0x89, 0x49, 0xe8, 0x08, 0xbc,
0x33, 0xb9, 0x8b, 0x48, 0x4c, 0x26, 0x3e, 0xc7, 0x90, 0x3e, 0x86, 0xc1, 0x2a, 0xd7, 0x06, 0xab,
0x51, 0x2f, 0xf6, 0x26, 0x1e, 0xaf, 0x31, 0xa5, 0xe0, 0xdb, 0xbc, 0x17, 0x93, 0xc9, 0x31, 0xb7,
0x31, 0x4b, 0x21, 0xc4, 0x69, 0x5f, 0xf3, 0xa2, 0x63, 0x20, 0x05, 0x1f, 0x1b, 0xa2, 0x9e, 0x4d,
0xd9, 0xb8, 0x45, 0xe2, 0x75, 0x90, 0xf8, 0x0d, 0x92, 0x5f, 0xa4, 0xd4, 0xbc, 0xc8, 0x0a, 0x43,
0x1f, 0xc2, 0x11, 0xc6, 0xa7, 0xa2, 0x62, 0xa9, 0x10, 0x7d, 0x0a, 0xc3, 0xd5, 0x3a, 0x53, 0xd8,
0xb3, 0x90, 0x97, 0x72, 0x63, 0x19, 0x03, 0xde, 0x4e, 0xd2, 0x07, 0x10, 0x9c, 0x16, 0x73, 0x99,
0xda, 0x2f, 0x31, 0xe0, 0x25, 0xa0, 0x11, 0xf4, 0x97, 0xc9, 0x95, 0xd5, 0xe9, 0xdb, 0xa1, 0x0e,
0xa2, 0xd4, 0xcf, 0x57, 0x2a, 0xd3, 0x72, 0x59, 0x44, 0x41, 0x4c, 0x50, 0xaa, 0xc3, 0xec, 0x1c,
0x86, 0xdf, 0x54, 0x21, 0x4d, 0xbd, 0xce, 0x2e, 0x69, 0x2f, 0xe1, 0xd8, 0xf5, 0xa0, 0x12, 0xbb,
0xd8, 0xf0, 0xd5, 0x70, 0xaa, 0x55, 0x3a, 0x75, 0x05, 0xde, 0x6a, 0x61, 0x1f, 0x20, 0x9c, 0xcb,
0x8d, 0x34, 0xf2, 0x64, 0x87, 0x5b, 0xec, 0x9a, 0x1c, 0x41, 0xff, 0x4c, 0xee, 0xea, 0xa1, 0x3e,
0x77, 0x90, 0xbd, 0x81, 0x70, 0x26, 0x44, 0xbd, 0xb5, 0x67, 0xd0, 0x9f, 0x09, 0x61, 0x1b, 0xc9,
0x35, 0x76, 0x4c, 0x72, 0x57, 0x65, 0xef, 0xe1, 0xde, 0x97, 0x6c, 0x2b, 0x9c, 0x98, 0xdb, 0xe9,
0x2b, 0xbb, 0x7b, 0xb5, 0xdd, 0xec, 0x23, 0xd0, 0xf6, 0x73, 0xbb, 0xc5, 0xae, 0xf7, 0x37, 0x1c,
0x07, 0x53, 0x30, 0x6a, 0x4e, 0xb8, 0xd5, 0xf3, 0x27, 0x70, 0x67, 0x65, 0x12, 0x6d, 0x1a, 0x43,
0x0e, 0x09, 0xf4, 0xfa, 0x53, 0x7e, 0xb1, 0x35, 0xd6, 0x6b, 0x9f, 0x97, 0xc0, 0x69, 0xf6, 0x0f,
0x9a, 0x7f, 0x93, 0xb6, 0x3f, 0x78, 0x4a, 0x0e, 0x97, 0x03, 0x4a, 0xd6, 0x76, 0x92, 0xbe, 0x85,
0xbb, 0x8d, 0xd3, 0x6f, 0x18, 0x3b, 0xaa, 0x57, 0x5b, 0xd5, 0xf8, 0xf5, 0x46, 0xfa, 0xdc, 0xfa,
0x66, 0x65, 0xa3, 0xb8, 0x9b, 0xde, 0xb8, 0x06, 0xb6, 0x01, 0xc0, 0x4f, 0x2e, 0x8b, 0x8b, 0x8d,
0xc1, 0x83, 0x9c, 0x09, 0x71, 0x90, 0x15, 0xf0, 0x1a, 0xd3, 0x18, 0xc2, 0x65, 0x2e, 0xb2, 0x1f,
0xbb, 0xb2, 0x5c, 0xfe, 0x00, 0x9a, 0x29, 0xec, 0xe0, 0xf2, 0x67, 0x7e, 0x29, 0x0f, 0x8b, 0x09,
0x78, 0x33, 0x75, 0x72, 0xff, 0xcf, 0x7e, 0x4c, 0xfe, 0xee, 0xc7, 0xe4, 0xdf, 0x7e, 0x4c, 0xce,
0x83, 0xe9, 0x3b, 0xad, 0xd2, 0xef, 0x47, 0xf6, 0xff, 0xe3, 0xf5, 0xff, 0x00, 0x00, 0x00, 0xff,
0xff, 0x5b, 0x21, 0xc1, 0xf8, 0x5c, 0x04, 0x00, 0x00,
0x10, 0x66, 0x9b, 0xa4, 0xed, 0x4d, 0xae, 0x58, 0x57, 0x91, 0x28, 0x52, 0x42, 0x10, 0x2c, 0x3e,
0x54, 0x54, 0xf0, 0x41, 0x11, 0xed, 0x59, 0x85, 0xe3, 0x5a, 0x91, 0x2d, 0xbe, 0xdc, 0x5b, 0x4c,
0x56, 0x08, 0xed, 0x35, 0x4b, 0xb2, 0x77, 0x5c, 0xff, 0x8b, 0x3f, 0xc2, 0x9f, 0xe1, 0xa3, 0x3f,
0x41, 0xfa, 0x4b, 0x8e, 0x99, 0x64, 0xd3, 0xe4, 0xb8, 0xf4, 0xa9, 0xf3, 0xcd, 0xcc, 0x7e, 0xdf,
0xb7, 0xb3, 0xd3, 0xc0, 0x63, 0x95, 0xa5, 0x3a, 0x7d, 0x99, 0xa9, 0xa8, 0x0c, 0xc2, 0xcd, 0x6a,
0x42, 0x21, 0xb7, 0x32, 0x15, 0x05, 0x73, 0xe8, 0x8b, 0x70, 0xb3, 0x9a, 0x85, 0x3a, 0xe4, 0x43,
0xb0, 0xce, 0xe4, 0xd6, 0x63, 0x3e, 0x1b, 0xdb, 0x02, 0x43, 0xfe, 0x04, 0xfa, 0xcb, 0x34, 0xd3,
0x58, 0xf5, 0x3a, 0xbe, 0x35, 0xb6, 0x44, 0x85, 0x39, 0x07, 0x9b, 0xf2, 0x96, 0xcf, 0xc6, 0xc7,
0x82, 0xe2, 0x20, 0x02, 0x17, 0xd9, 0xbe, 0xa7, 0x79, 0x0b, 0x21, 0x07, 0x1b, 0x1b, 0xbc, 0x0e,
0xa5, 0x28, 0x6e, 0x88, 0x58, 0x2d, 0x22, 0x76, 0x4d, 0xe4, 0x0f, 0x2b, 0x3c, 0xcf, 0x93, 0x5c,
0xf3, 0x47, 0xd0, 0xc5, 0xf8, 0x34, 0x2e, 0x55, 0x4a, 0x84, 0xa4, 0x18, 0x7d, 0x0b, 0x2f, 0x24,
0x89, 0x1d, 0x89, 0x0a, 0xf3, 0x67, 0x30, 0x58, 0xae, 0x12, 0x85, 0xe7, 0xe7, 0xf2, 0x4a, 0xae,
0xe9, 0x0a, 0x8e, 0x68, 0x26, 0xf9, 0x43, 0x70, 0x4e, 0xf3, 0x99, 0x8c, 0x48, 0xbb, 0x2f, 0x0a,
0xc0, 0x3d, 0xe8, 0x2d, 0xc2, 0x6b, 0xba, 0x83, 0x43, 0x82, 0x06, 0xa2, 0xe2, 0x97, 0x6b, 0x95,
0x64, 0x72, 0x91, 0x7b, 0x5d, 0x9f, 0xe1, 0x35, 0x0c, 0x0e, 0xce, 0x61, 0xf0, 0x43, 0xe5, 0x52,
0x57, 0xa3, 0x6e, 0xb3, 0xfd, 0x0a, 0x8e, 0x4d, 0x0f, 0x3a, 0xa1, 0xa1, 0xbb, 0xaf, 0x07, 0x93,
0x4c, 0x45, 0x13, 0x53, 0x10, 0x8d, 0x96, 0xe0, 0x23, 0xb8, 0x33, 0xb9, 0x96, 0x5a, 0x9e, 0x6c,
0x71, 0xc2, 0x6d, 0xcc, 0x1e, 0xf4, 0xce, 0xe4, 0xb6, 0x22, 0xb5, 0x85, 0x81, 0xc1, 0x5b, 0x70,
0xa7, 0x71, 0x5c, 0x4d, 0xf4, 0x39, 0xf4, 0xa6, 0x71, 0x4c, 0x8d, 0xec, 0x96, 0x3a, 0x26, 0x85,
0xa9, 0x06, 0x1f, 0xe0, 0xfe, 0xd7, 0x64, 0x13, 0x1b, 0x33, 0x87, 0xe5, 0xcb, 0x55, 0xe8, 0x54,
0xab, 0x10, 0x7c, 0x02, 0xde, 0x3c, 0x4e, 0x53, 0x6c, 0x3b, 0x7f, 0xc7, 0xe2, 0x04, 0x0a, 0x86,
0x75, 0x86, 0x83, 0xfb, 0xf0, 0x14, 0x8e, 0x96, 0x3a, 0xcc, 0x74, 0x8d, 0x64, 0x9f, 0xc0, 0xb7,
0xfe, 0x9c, 0x5e, 0x6e, 0x34, 0x6d, 0x82, 0x2d, 0x0a, 0x60, 0x3c, 0xdb, 0x7b, 0xcf, 0xbf, 0x59,
0xf3, 0x7d, 0x70, 0x95, 0x0c, 0x2e, 0x08, 0x0a, 0xd5, 0x66, 0x92, 0xbf, 0x83, 0x7b, 0xb5, 0xbf,
0x45, 0xed, 0x61, 0x87, 0xd5, 0x68, 0xcb, 0x9a, 0xb8, 0xdd, 0xc8, 0x5f, 0xd0, 0xbb, 0x91, 0x6d,
0x34, 0x77, 0xd7, 0x19, 0xd3, 0x10, 0xac, 0x01, 0xf0, 0x57, 0xc8, 0xfc, 0x72, 0xad, 0x71, 0x21,
0xa7, 0x71, 0xbc, 0xb7, 0xe5, 0x88, 0x0a, 0x73, 0x1f, 0xdc, 0x45, 0x1a, 0x27, 0xbf, 0xb6, 0x45,
0xb9, 0x43, 0xe5, 0x7a, 0x0a, 0x3b, 0x84, 0xbc, 0x48, 0xaf, 0xe4, 0x7e, 0x30, 0x8e, 0xa8, 0xa7,
0x4e, 0x1e, 0xfc, 0xdd, 0x8d, 0xd8, 0xbf, 0xdd, 0x88, 0xfd, 0xdf, 0x8d, 0xd8, 0xb9, 0x33, 0x79,
0x9f, 0xa9, 0xe8, 0x67, 0x97, 0xbe, 0x2d, 0x6f, 0x6e, 0x02, 0x00, 0x00, 0xff, 0xff, 0x95, 0xfb,
0xbc, 0xc4, 0x78, 0x04, 0x00, 0x00,
}
func (m *RankData) Marshal() (dAtA []byte, err error) {
@@ -909,12 +918,12 @@ func (m *RankList) MarshalToSizedBuffer(dAtA []byte) (int, error) {
if m.ExpireMs != 0 {
i = encodeVarintRank(dAtA, i, uint64(m.ExpireMs))
i--
dAtA[i] = 0x28
dAtA[i] = 0x30
}
if m.MaxRank != 0 {
i = encodeVarintRank(dAtA, i, uint64(m.MaxRank))
i--
dAtA[i] = 0x20
dAtA[i] = 0x28
}
if m.IsDec {
i--
@@ -924,12 +933,19 @@ func (m *RankList) MarshalToSizedBuffer(dAtA []byte) (int, error) {
dAtA[i] = 0
}
i--
dAtA[i] = 0x18
dAtA[i] = 0x20
}
if m.SkipListLevel != 0 {
i = encodeVarintRank(dAtA, i, uint64(m.SkipListLevel))
i--
dAtA[i] = 0x10
dAtA[i] = 0x18
}
if len(m.RankName) > 0 {
i -= len(m.RankName)
copy(dAtA[i:], m.RankName)
i = encodeVarintRank(dAtA, i, uint64(len(m.RankName)))
i--
dAtA[i] = 0x12
}
if m.RankId != 0 {
i = encodeVarintRank(dAtA, i, uint64(m.RankId))
@@ -1372,6 +1388,10 @@ func (m *RankList) Size() (n int) {
if m.RankId != 0 {
n += 1 + sovRank(uint64(m.RankId))
}
l = len(m.RankName)
if l > 0 {
n += 1 + l + sovRank(uint64(l))
}
if m.SkipListLevel != 0 {
n += 1 + sovRank(uint64(m.SkipListLevel))
}
@@ -1997,6 +2017,38 @@ func (m *RankList) Unmarshal(dAtA []byte) error {
}
}
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field RankName", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowRank
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthRank
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthRank
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.RankName = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field SkipListLevel", wireType)
}
@@ -2015,7 +2067,7 @@ func (m *RankList) Unmarshal(dAtA []byte) error {
break
}
}
case 3:
case 4:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field IsDec", wireType)
}
@@ -2035,7 +2087,7 @@ func (m *RankList) Unmarshal(dAtA []byte) error {
}
}
m.IsDec = bool(v != 0)
case 4:
case 5:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field MaxRank", wireType)
}
@@ -2054,7 +2106,7 @@ func (m *RankList) Unmarshal(dAtA []byte) error {
break
}
}
case 5:
case 6:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field ExpireMs", wireType)
}

View File

@@ -20,10 +20,11 @@ message RankPosData {
// RankList 排行榜数据
message RankList {
uint64 RankId = 1; //排行榜类型
int32 SkipListLevel = 2; //排行榜level-生成的跳表的level, 8/16/32/64等
bool IsDec = 3; //不参与排行的数据
uint64 MaxRank = 4; //最大排名
int64 ExpireMs = 5;//有效时间毫秒,0表示永不过期
string RankName = 2; //排行榜名称
int32 SkipListLevel = 3; //排行榜level-生成的跳表的level, 8/16/32/64等
bool IsDec = 4; //不参与排行的数据
uint64 MaxRank = 5; //最大排名
int64 ExpireMs = 6; //有效时间0永不过期
}
// UpsetRankData 更新排行榜数据
@@ -60,12 +61,14 @@ message FindRankDataList {
uint64 RankId = 1; //排行榜的ID
uint64 StartRank = 2; //排行的位置 0开始
uint64 Count = 3; //查询格式
uint64 Key = 4; //附带一个Key查询排行信息
}
// RankDataList
message RankDataList {
uint64 RankDataCount = 1; //排行长度
repeated RankPosData RankPosDataList = 2; //排行数据
RankPosData KeyRank = 3; //附带的Key查询排行结果信息
}
// RankResult