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

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

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

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

下图为写日志的流程图

屏幕快照 2016-01-30 下午1.47.25.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容