我有如下 class Student 。
@RedisHash("Student")
public class Student {
  @Id
  private String id;
  @Indexed
  private String name;
  @Indexed
  private int age;
  // Getters and Setters (omitted for brevity)
}
然后我使用 Spring Data Redis saveAll 来保存多个 Students 。
public interface StudentRepository extends CrudRepository<Student, String> {
}
public void saveAllStudents(List<Student> students) {
  studentRepository.saveAll(students);
}
但是如果 students 数量很大的话,studentRepository.saveAll(students)很慢,因为它是一个一个遍历然后执行 save 的。有什么办法可以优化吗?
|      1chihiro2014      2024-04-23 00:57:35 +08:00 用管道操作? | 
|  |      2Red998      2024-04-23 18:03:56 +08:00 你这是把 redis 当成数据库了。。 管道可以实现、但是有缺点数据量大、占用内存就多、网络阻塞什么的。原子性可以保证、但不能回滚。 我的建议异步 mq 分批次 。起码 mq 可以根据你的消费速率、再不济就上 binlog 监听同步数据。 | 
|      3JasonLaw OP @chihiro2014 #1 现在选择这种方法,不过缺点就是要自己实现保存数据和索引。🤕 |