欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

redis 删除某个记录的注意事项

程序员文章站 2022-05-08 11:24:33
...

一、使用 redisTemplate.opsForZSet().removeRange()方法

注意:方法的参数依次是 (key , start ,end)是区间范围的删除;但是 注意这个区间:是按照 value排序的区间

下面是按照score排序的区间,本例中 score 采用的是 数据库的 id 值
redis 删除某个记录的注意事项
按照value排序的数据

redis 删除某个记录的注意事项

这样调用这个 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);

redis 删除某个记录的注意事项
score 是从1 开始的,所以输入 (0,0) 的时候,redis 没有变化

Long allPerson = redisTemplate.opsForZSet().removeRangeByScore("allPerson", 1, 1);

//第一条数据被删除

第一条数据被删除
redis 删除某个记录的注意事项

Long allPerson = redisTemplate.opsForZSet().removeRangeByScore("allPerson", 2, 5);

//第 2 到 5 条数据被删除(按照 score排序)

第 2 到 5 条数据被删除(按照 score排序)
redis 删除某个记录的注意事项

三、总结

redisTemplate.opsForZSet().removeRange()删除的区间是从 0 开始的,(0 , 0)删除的是第一条
redisTemplate.opsForZSet().removeRangeByScore() 删除的区间是从1开始的 (1,1)删除的是第一条

相关标签: redis 数据库