游戏服务器中的排行榜设计

其实都是为了减少IO次数锁进行的一些优化,即使是:Redis,也不能一直访问。

这时候,可以结合

先从Redis读取排行榜信息,然后存到内存List中。

List 和 expireTime,之后的尝试上榜,就是直接把待更新的数据放到List中,然后进行排序,当然了,由于多线程的问题,需要加读写锁。

随着访问次数的增加,访问多了,就自然会把数据全部刷新到Redis中,这样子大大减少了redis的访问频率。

------------------

再次思考:死锁的产生

其实死锁这种,必然是出现了循环等待,你等我释放资源,我等你释放资源。 但是读写锁这种,争抢锁,没有可能出现同时争抢这种情况,因此,必然是线程安全的。

你可能感兴趣的:(#,游戏服务器业务开发,redis)