大批量更新Redis缓存(set集合)
背景:redis.set.add(array) , array很大。由于Redis没有全量更新set集合的API,所以,只能先delete,再add(array),在删除之后和add成功之前的这个时间段内,是get不到数据的;
目标:如何避免,或者缩短这个时间间隙;
方案:模拟Redis的集群重新分片(槽数据迁移),get请求继续访问老set,另一个线程去创建一个新set,然后将新数据add进去,然后get直接访问新set;
实现关键点:如何灵活切换新老set?
具体措施:
- 在get的key中定义一个变量part,表示当前可以访问的set区域,part的值继续存储到Redis,每次get请求,都先从Redis中取part值,得到实际要访问set的key;
- 在迁移完成之后,将新set的part更新到Redis;
以上是 大批量更新Redis缓存(set集合) 的全部内容, 来源链接: utcz.com/z/518562.html