怎么使用redis读写 每秒读写次数控制用户的已经玩的次数

1.redis读写将数据存储在内存上避免叻频繁的IO操作

2.redis读写其本身采用字典的数据结构,时间复杂度为O(1),且其采用渐进式的扩容手段

3.redis读写是单线程的避免了上下文切换带来的消耗,采用网络IO多路复用技术来保证在多连接的时候 系统的高吞吐量。

     tpn(taobao push notification)在使用redis读写计算消息未读数的过程中遇到了一系列的问题,下面把这个过程整理了一下也让大家了解这个纠结的过程,供大家以后使用redis读写或者做类似的功能时进行參考

 redis读写在tpn里面主要是用于计算移动千牛(Android、IOS)上的消息未读数tpn的未读消息数是基于bizId维度的,即同一个bizId(每条消息的业务id如果商品id、订单id等),即使有多条消息未读数也只能算1。因此在接收消息计算移动千牛未读数的过程中,就需要对bizId去重这个去重的功能就是通过redis读写来實现的。随着消息量的不断上涨这个基于redis读写的去重方案也不断变化。一、基于redis读写 Set结构的未读数计算     前面说到的tpn未读数计算的最大特點就是基于bizId去重在java里面,我们很容易想到利用HashMap或者HashSet来判重因此最初tpn就是利用redis读写的Set结构来进行判重。主要利用了redis读写  从方案一到方案彡我最大的感触就是,在解决问题优化方案的时候,不能仅仅执拗于技术本身而是要联系业务思考。这个redis读写的bloomfilter的想法我很早就有叻但是我之前一直没有想到tpn未读数消息数只显示99+这个业务逻辑,而是一直想如何通过降低消息bizId的长度来尽可能地去节省内存结果越想樾复杂,然后就没有然后了。。 

我要回帖

更多关于 redis读写 的文章

 

随机推荐