利用redis维护topN集合

我有一个需求,就是维护最近N条浏览历史,下面记录一下这个小技巧。

我们用redis来实现:

用pipeline向List左侧lpush多个新元素,然后利用ltrim保留List左侧的N个元素。

因为使用pipeline把插入和删除做成了批量提交,所以性能很不错。

另外,ltrim的实现是从List右侧向左删除,所以时间复杂度只与要删除的元素个数相关,性能也很好~

 

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~