ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
介绍:用于实时排行计算。设置数值能立即获取到数值排行(10亿级数据能在1毫秒内完成)。 * 说明 1. 系统支持2^32个独立的排行榜同,用榜单id区分,**榜单id大于等于零为临时榜单,进程退出后丢失**,榜单id小于零为持久榜单。 2. 每个榜单内可插入2^32个项目id,每个项目id对应一个数值和一个时间,时间在数值可自动设置为当前系统时间(精度+-10毫秒); 3. 排行就是项目数值大小的排列次序,数值最大的排行为 1 ; 4. 对于相同数值,会得到相同排行,但会占用排行名额。比如有两个第一,那么第二会缺失,下一个是第三; 5. 项目id 和 数值 都为32位正整数,超过此范围会按位截断; 6. 这些函数的返回值都为一个数组: [错误码,结果,...],无错误时,错误码为 undefined 。 ### zx.排行设置(榜单id,项id,数值,[时间]); 新增或更新某项数值,即使数值不变也会刷新时间,如果不带时间参数则使用当前系统时间。 返回值 = [错误码,原值,原时间]; ### zx.排行删除(榜单id,[项id]); 删除榜单中的某项,如果不带项id参数则删除整个榜单。 返回值 = [错误码];如果id项不存在或删除数量为零,错误码为1 ### zx.排行读取(榜单id,项id,[读取选项]); 读取某项的数值或获取更多信息。 读取选项 = 0 或不设置: 返回值 = [错误码,数值]; 读取选项 = 1: 返回值 = [错误码,数值,排名,null]; 读取选项 = 2: 返回值 = [错误码,数值,null,时间]; 读取选项 > 2: 返回值 = [错误码,数值,排名,时间]; ### zx.排行设取(榜单id,项id,数值,[时间]); 新增或更新某项数值,并获取最新排行。 返回值 = [错误码,原值,原时间,现在的排行]; ### zx.排行计算(榜单id,数值); 计算一个数值(应当)所处的排行,此操作不改变或影响排行榜. 返回值 = [错误码,排行]; ### zx.排行项列取(榜单id,起始项id,数量); 按项目id的顺序列出榜单内的项目 返回[错误码,[id,值],[id,值]...];结果包含起始项,数量不大于10000; 如果需要反方向列取,数量可以设置为负数,结果包括起始项。 ### zx.排行值列取(榜单id,起始值,数量); 根据数值大小列取榜单项目,从起始值开始由小到大列取。 * 返回值[错误码,[id,值,时间],[id,值,时间]...],结果包含起始值,数量不大于10000。 * 如果需要反方向列取,数量可以设置为负数,结果也包含起始值对应项。 * 注意:对于值相同的项目,他们是按id排序。(需要按时间排序可以自行处理,但这里面有一个小坑:因为数量限制,有些数值相同的项目可能没有完整列出,也就无法有效排序,设置足够大的数量甚至多次查询可以解决这个问题。) * 取TOP100示例:zx.排行值列取(榜单id,0xffffffff,-100);