admin 发表于 2016-2-2 13:25

使用redis实现日志功能,支持按天获取日志

通常可使用redis的list数据结构形成日志。但list仅支持对数量进行筛选。如获取近100条日志记录。无法实现获取近30天数据。

当然可以使用sorted set实现按天获取,但当日志数量不断增加时,sorted set的额外开销还是比较大的。为了高效满足需求,可使用两层list实现。

解决方法:在记录日志时,可将日志按天归档在不同的list当中,如2015年12月1日的数据归档在在key为20151201的list中。其中20151201为归档时间。然后额外设定一个用于保存归档时间的list。如key为archive,value为,这样仅需要用lrange命令就可以从archive获取到近30天归档,然后去相应的list去访问具体数据。非常高效

下图为写日志的流程图



原文:http://www.jianshu.com/p/c60cb5177aba

页: [1]
查看完整版本: 使用redis实现日志功能,支持按天获取日志