redis 删除某个记录的注意事项
程序员文章站
2022-05-08 11:24:33
...
redis 删除某个记录的注意事项
一、使用 redisTemplate.opsForZSet().removeRange()方法
注意:方法的参数依次是 (key , start ,end)是区间范围的删除;但是 注意这个区间:是按照 value排序的区间
下面是按照score排序的区间,本例中 score 采用的是 数据库的 id 值
按照value排序的数据
这样调用这个 redisTemplate.opsForZSet().removeRange()方法的时候,我一开始写的是
Long isDeleteRedis = redisTemplate.opsForZSet().removeRange("allPerson", id, id);
测试的时候输入的id 是
Long allPerson = redisTemplate.opsForZSet().removeRange("allPerson", 0,0);
//删除的是第一条的数据
Long allPerson = redisTemplate.opsForZSet().removeRange("allPerson", 1,1);
//删除的是第二条的数据 根据 score排列的第二条数据没了
Long allPerson = redisTemplate.opsForZSet().removeRange("allPerson", 0,1);
//删除的是第二条的数据 根据 score排列的 前两条数据就都没有了
结论
redisTemplate.opsForZSet().removeRange() 是删除根据 score排序的 区间进行删除,区间从 0 开始
(0,1)删除的是前两条数据,一次类推
二、redisTemplate.opsForZSet().removeRangeByScore(“name”,start,end)
Long allPerson = redisTemplate.opsForZSet().removeRangeByScore("allPerson", 0, 0);
score 是从1 开始的,所以输入 (0,0) 的时候,redis 没有变化
Long allPerson = redisTemplate.opsForZSet().removeRangeByScore("allPerson", 1, 1);
//第一条数据被删除
第一条数据被删除
Long allPerson = redisTemplate.opsForZSet().removeRangeByScore("allPerson", 2, 5);
//第 2 到 5 条数据被删除(按照 score排序)
第 2 到 5 条数据被删除(按照 score排序)
三、总结
redisTemplate.opsForZSet().removeRange()删除的区间是从 0 开始的,(0 , 0)删除的是第一条
redisTemplate.opsForZSet().removeRangeByScore() 删除的区间是从1开始的 (1,1)删除的是第一条
上一篇: 累计连续签到 设计和实现