redis中动态变化字段排序的问题?

clipboard.png
这个题的思路该如何处理?
我这里是一直纠结于这个余额banlance字段是动态可变化的,没办法放list里边

阅读 2.4k
1 个回答

给个大概思路:
数据分成两部分:

  1. 钱包的原始数据

    以钱包的Address为redis的key, value值选用字典结构保存钱包数据(Address, Balance, TxCount)

  2. 排行榜

    选用redis 的sorted set(有序集合)结构实现排序功能.具体怎么做,网上资料很多,不做详细描述.因为是按照余额进行排行,因此,可以在redis中实现一个排行ranker, 当新钱包进来或者余额发生变化时, 执行下面的操作, 同时不要忘记更新钱包中的数据:
    zadd ranker <balance> <address>

=== 到这里数据的存储基本上是实现了

获取数据也很简单:

从排行榜ranker中按照指定顺序分页获取钱包的地址, 拿到钱包的地址以后, 再根据钱包地址获取钱包的详细数据, 具体的排名在获取数据的时候计算一下就好了.
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进