介紹:用于實時排行計算。設置數值能立即獲取到數值排行(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);