给个大概思路:数据分成两部分: 钱包的原始数据以钱包的Address为redis的key, value值选用字典结构保存钱包数据(Address, Balance, TxCount) 排行榜选用redis 的sorted set(有序集合)结构实现排序功能.具体怎么做,网上资料很多,不做详细描述.因为是按照余额进行排行,因此,可以在redis中实现一个排行ranker, 当新钱包进来或者余额发生变化时, 执行下面的操作, 同时不要忘记更新钱包中的数据:zadd ranker <balance> <address> === 到这里数据的存储基本上是实现了 获取数据也很简单: 从排行榜ranker中按照指定顺序分页获取钱包的地址, 拿到钱包的地址以后, 再根据钱包地址获取钱包的详细数据, 具体的排名在获取数据的时候计算一下就好了.
给个大概思路:
数据分成两部分:
以钱包的Address为redis的key, value值选用字典结构保存钱包数据(Address, Balance, TxCount)
选用redis 的sorted set(有序集合)结构实现排序功能.具体怎么做,网上资料很多,不做详细描述.因为是按照余额进行排行,因此,可以在redis中实现一个排行ranker, 当新钱包进来或者余额发生变化时, 执行下面的操作, 同时不要忘记更新钱包中的数据:
zadd ranker <balance> <address>
=== 到这里数据的存储基本上是实现了
获取数据也很简单: