1.需求背景:
使用redis,开辟一个列表,不断往里面进行LPUSH操作。并且不断进行LLEN的长度读取,当长度大于某个阈值(本次举例:500)时,读取前500个元素,添加至CK中后,再进行LTrim删除。
2.问题描述:
经过多次排查,统计某一时段的数据量:累积98371次请求(1条请求 可以看做为 1条数据元素),最终落入CK中,只剩71643个元素。少了约2W条数据。
3.问题原由:
先上代码:
简化代码如下:
1.进行LLEN查询长度
2 .log.info(if判断外)
3.if(LLEN >=阈值){
4. log.info(if判断内)
5. LRange读取前500个元素
6. 删除LTrim前500元素
7.}
由此可见,当len=500的时