Bump的Redis应用经验

这里说的Bump就是那个手机碰一碰就能交换信息的app,本文来自Bump的开发者博客,他们描述了自己使用Redis的几种方法,以及在使用过程中的一些经验,包括与MongoDB同机部署的一些问题,NoSQLFan转译如下,详细描述可移步原文

1.将Redis用作消息队列

采用的当然是Redis的List数据结构,而实际上NoSQLFan之前还讨论过采用sorted sets结构来做带权重的消息队列的方法。

2.将Redis用作日志收集器

实际上还是一个队列,多个端点将日志信息写入Redis,然后一个worker统一将所有日志写到磁盘。

3.存储社交关系

比如将每个人的好友存在一个集合(set)中,这样求两个人的共同好友的操作,可能就只需要用求交集命令即可。

4.用作缓存层

用来做持久化存储的缓存,和Memcached一样,可以在持久化存储获取成功后将数据在Redis中进行缓存,我们知道,Redis的性能优于Memcached。

5.关于持久化

用作持久存储的时候,可以选择定时flush成rdb或开启aof日志的做法,具体选择哪一种,可以根据业务上可接受的数据可靠程度而定。

6.与MongoDB一起使用的问题

一个提醒,在Bump早期,曾将Redis和MongoDB放在同一台机器,而由于Redis的单线程,常由于MongoDB对于CPU或磁盘IO的占用而导致其某个过程(比如malloc或者写aof)执行时间过长,从而进一步导致其所有操作被阻塞并延迟,所以尽量不要将其用于可能被大量占用CPU或磁盘IO,导致Redis工作线程被阻塞的场合。

来源:devblog.bu.mp

anyShare赠人玫瑰,手有余香,分享知识,德艺双馨!
          

无觅相关文章插件,快速提升流量

分类 Redis · tag , ,