大批量更新Redis缓存(set集合)

编程

背景:redis.set.add(array) , array很大。由于Redis没有全量更新set集合的API,所以,只能先delete,再add(array),在删除之后和add成功之前的这个时间段内,是get不到数据的; 

目标:如何避免,或者缩短这个时间间隙;

方案:模拟Redis的集群重新分片(槽数据迁移),get请求继续访问老set,另一个线程去创建一个新set,然后将新数据add进去,然后get直接访问新set; 

实现关键点:如何灵活切换新老set?

具体措施:

  1.  在get的key中定义一个变量part,表示当前可以访问的set区域,part的值继续存储到Redis,每次get请求,都先从Redis中取part值,得到实际要访问set的key;
  2. 在迁移完成之后,将新set的part更新到Redis;

以上是 大批量更新Redis缓存(set集合) 的全部内容, 来源链接: utcz.com/z/518562.html

回到顶部