遊戲玩家排行榜__最佳實踐_雲數據庫 Redis 版-阿裏雲
遊戲玩家積分排行榜
場景介紹
ApsaraDB for Redis 在功能上與 Redis 基本一致,因此很容易用它來實現一個在線遊戲中的積分排行榜功能。
代碼示例
import java.util.ArrayList;import java.util.List;import java.util.Set;import java.util.UUID;import redis.clients.jedis.Jedis;import redis.clients.jedis.Tuple;public class GameRankSample {static int TOTAL_SIZE = 20;public static void main(String[] args){//連接信息,從控製台可以獲得String host = "xxxxxxxxxx.m.cnhz1.kvstore.aliyuncs.com";int port = 6379;Jedis jedis = new Jedis(host, port);try {//實例ID及密碼String authString = jedis.auth("xxxxxxxxxx:yyyyyyy");//passwordif (!authString.equals("OK")){System.err.println("AUTH Failed: " + authString);return;}//Key(鍵)String key = "遊戲名:奔跑吧,阿裏!";//清除可能的已有數據jedis.del(key);//模擬生成若幹個遊戲玩家List<String> playerList = new ArrayList<String>();for (int i = 0; i < TOTAL_SIZE; ++i){//隨機生成每個玩家的IDplayerList.add(UUID.randomUUID().toString());}System.out.println("輸入所有玩家 ");//記錄每個玩家的得分for (int i = 0; i < playerList.size(); i++){//隨機生成數字,模擬玩家的遊戲得分int score = (int)(Math.random()*5000);String member = playerList.get(i);System.out.println("玩家ID:" + member + ", 玩家得分: " + score);//將玩家的ID和得分,都加到對應key的SortedSet中去jedis.zadd(key, score, member);}//輸出打印全部玩家排行榜System.out.println();System.out.println(" "+key);System.out.println(" 全部玩家排行榜 ");//從對應key的SortedSet中獲取已經排好序的玩家列表Set<Tuple> scoreList = jedis.zrevrangeWithScores(key, 0, -1);for (Tuple item : scoreList) {System.out.println("玩家ID:"+item.getElement()+", 玩家得分:"+Double.valueOf(item.getScore()).intValue());}//輸出打印Top5玩家排行榜System.out.println();System.out.println(" "+key);System.out.println(" Top 玩家");scoreList = jedis.zrevrangeWithScores(key, 0, 4);for (Tuple item : scoreList) {System.out.println("玩家ID:"+item.getElement()+", 玩家得分:"+Double.valueOf(item.getScore()).intValue());}//輸出打印特定玩家列表System.out.println();System.out.println(" "+key);System.out.println(" 積分在1000至2000的玩家");//從對應key的SortedSet中獲取已經積分在1000至2000的玩家列表scoreList = jedis.zrangeByScoreWithScores(key, 1000, 2000);for (Tuple item : scoreList) {System.out.println("玩家ID:"+item.getElement()+", 玩家得分:"+Double.valueOf(item.getScore()).intValue());}} catch (Exception e) {e.printStackTrace();}finally{jedis.quit();jedis.close();}}}
運行結果
在輸入了正確的 ApsaraDB for Redis 實例訪問地址和密碼之後,運行以上 Java 程序,輸出結果如下:
輸入所有玩家玩家ID:9193e26f-6a71-4c76-8666-eaf8ee97ac86, 玩家得分: 3860玩家ID:db03520b-75a3-48e5-850a-071722ff7afb, 玩家得分: 4853玩家ID:d302d24d-d380-4e15-a4d6-84f71313f27a, 玩家得分: 2931玩家ID:bee46f9d-4b05-425e-8451-8aa6d48858e6, 玩家得分: 1796玩家ID:ec24fb9e-366e-4b89-a0d5-0be151a8cad0, 玩家得分: 2263玩家ID:e11ecc2c-cd51-4339-8412-c711142ca7aa, 玩家得分: 1848玩家ID:4c396f67-da7c-4b99-a783-25919d52d756, 玩家得分: 958玩家ID:a6299dd2-4f38-4528-bb5a-aa2d48a9f94a, 玩家得分: 2428玩家ID:2e4ec631-1e4e-4ef0-914f-7bf1745f7d65, 玩家得分: 4478玩家ID:24235a85-85b9-476e-8b96-39f294f57aa7, 玩家得分: 1655玩家ID:e3e8e1fa-6aac-4a0c-af80-4c4a1e126cd1, 玩家得分: 4064玩家ID:99bc5b4f-e32a-4295-bc3a-0324887bb77e, 玩家得分: 4852玩家ID:19e2aa6b-a2d8-4e56-bdf7-8b59f64bd8e0, 玩家得分: 3394玩家ID:cb62bb24-1318-4af2-9d9b-fbff7280dbec, 玩家得分: 3405玩家ID:ec0f06da-91ee-447b-b935-7ca935dc7968, 玩家得分: 4391玩家ID:2c814a6f-3706-4280-9085-5fe5fd56b71c, 玩家得分: 2510玩家ID:9ee2ed6d-08b8-4e7f-b52c-9adfe1e32dda, 玩家得分: 63玩家ID:0293b43a-1554-4157-a95b-b78de9edf6dd, 玩家得分: 1008玩家ID:674bbdd1-2023-46ae-bbe6-dfcd8e372430, 玩家得分: 2265玩家ID:34574e3e-9cc5-43ed-ba15-9f5405312692, 玩家得分: 3734遊戲名:奔跑吧,阿裏!全部玩家排行榜玩家ID:db03520b-75a3-48e5-850a-071722ff7afb, 玩家得分:4853玩家ID:99bc5b4f-e32a-4295-bc3a-0324887bb77e, 玩家得分:4852玩家ID:2e4ec631-1e4e-4ef0-914f-7bf1745f7d65, 玩家得分:4478玩家ID:ec0f06da-91ee-447b-b935-7ca935dc7968, 玩家得分:4391玩家ID:e3e8e1fa-6aac-4a0c-af80-4c4a1e126cd1, 玩家得分:4064玩家ID:9193e26f-6a71-4c76-8666-eaf8ee97ac86, 玩家得分:3860玩家ID:34574e3e-9cc5-43ed-ba15-9f5405312692, 玩家得分:3734玩家ID:cb62bb24-1318-4af2-9d9b-fbff7280dbec, 玩家得分:3405玩家ID:19e2aa6b-a2d8-4e56-bdf7-8b59f64bd8e0, 玩家得分:3394玩家ID:d302d24d-d380-4e15-a4d6-84f71313f27a, 玩家得分:2931玩家ID:2c814a6f-3706-4280-9085-5fe5fd56b71c, 玩家得分:2510玩家ID:a6299dd2-4f38-4528-bb5a-aa2d48a9f94a, 玩家得分:2428玩家ID:674bbdd1-2023-46ae-bbe6-dfcd8e372430, 玩家得分:2265玩家ID:ec24fb9e-366e-4b89-a0d5-0be151a8cad0, 玩家得分:2263玩家ID:e11ecc2c-cd51-4339-8412-c711142ca7aa, 玩家得分:1848玩家ID:bee46f9d-4b05-425e-8451-8aa6d48858e6, 玩家得分:1796玩家ID:24235a85-85b9-476e-8b96-39f294f57aa7, 玩家得分:1655玩家ID:0293b43a-1554-4157-a95b-b78de9edf6dd, 玩家得分:1008玩家ID:4c396f67-da7c-4b99-a783-25919d52d756, 玩家得分:958玩家ID:9ee2ed6d-08b8-4e7f-b52c-9adfe1e32dda, 玩家得分:63遊戲名:奔跑吧,阿裏!Top 玩家玩家ID:db03520b-75a3-48e5-850a-071722ff7afb, 玩家得分:4853玩家ID:99bc5b4f-e32a-4295-bc3a-0324887bb77e, 玩家得分:4852玩家ID:2e4ec631-1e4e-4ef0-914f-7bf1745f7d65, 玩家得分:4478玩家ID:ec0f06da-91ee-447b-b935-7ca935dc7968, 玩家得分:4391玩家ID:e3e8e1fa-6aac-4a0c-af80-4c4a1e126cd1, 玩家得分:4064遊戲名:奔跑吧,阿裏!積分在1000至2000的玩家玩家ID:0293b43a-1554-4157-a95b-b78de9edf6dd, 玩家得分:1008玩家ID:24235a85-85b9-476e-8b96-39f294f57aa7, 玩家得分:1655玩家ID:bee46f9d-4b05-425e-8451-8aa6d48858e6, 玩家得分:1796玩家ID:e11ecc2c-cd51-4339-8412-c711142ca7aa, 玩家得分:1848
最後更新:2016-12-16 17:17:00
上一篇:
參數設置__用戶指南_雲數據庫 Redis 版-阿裏雲
下一篇:
商品相關性分析__最佳實踐_雲數據庫 Redis 版-阿裏雲
雲上係統專家保障(標準版)__工作說明書_尊享服務_支持計劃-阿裏雲
自動續費__購買實例_購買指南_雲服務器 ECS-阿裏雲
權限__授權管理_用戶指南_訪問控製-阿裏雲
用戶實例與授權示例__用戶手冊_雲服務總線 CSB-阿裏雲
發布APP__快速開始_移動數據分析-阿裏雲
InstanceTypeFamilyItemType__數據類型_API 參考_雲服務器 ECS-阿裏雲
公共雲與金融雲間的數據遷移__最佳實踐_數據傳輸-阿裏雲
查詢可用區__地域相關接口_API 參考_雲服務器 ECS-阿裏雲
PermissionType__數據類型_API 參考_雲服務器 ECS-阿裏雲
下載文件__Java-SDK_SDK 參考_對象存儲 OSS-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲