찾다

 >  Q&A  >  본문

java - mongodb配合redis缓存有没有成熟的方案?

业务系统采用了Mongodb,现在想针对部分数据用redis进行缓存优化。
原来看到过一个mongoose-redis-cache:https://github.com/conancat/mongoose-red...,我理解它相当于建立一个查询语句和查询结果的键值对,但这种情况下,如果数据库业务改变后是无法同步到缓存的。想请教下各位有没有其他方案?

怪我咯怪我咯2809일 전777

모든 응답(3)나는 대답할 것이다

  • 巴扎黑

    巴扎黑2017-04-17 17:37:48

    spring-data를 활용하면 좋아요. mongodb와 redis가 있는데 spring-data-jpa를 직접 사용해 mongodb를 운영하는 것이 편리하고 빠르다. 게다가 Spring에는 캐시에 자동으로 저장될 수 있는 캐시 주석이 있습니다.
    봄 데이터 주소

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-17 17:37:48

    redis와 mongo는 데이터를 별도로 처리하는 것이 좋습니다. 먼저 mongo에서 데이터를 가져온 다음 이를 redis로 설정합니다. 사용하신 mongoose-redis-cache는 향후 확장성이 떨어지는 것 같고, 버그 찾기도 쉽지 않은 것 같습니다

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-17 17:37:48

    저는 js에 대해 잘 몰라서 간단하게 알려주신 연결 코드를 살펴봤습니다.
    1.mongoose-redis-cache: mongo 앞에 redis 레이어를 래핑하는 것과 같습니다. 쿼리 문이 캐시되어 있습니다.
    key = [prefix, collectionName, hash].join ':'
    prefix, collName 및 쿼리 문을 사용하여 Redis에서 키를 생성하고 먼저 redis 쿼리 결과, 그렇지 않은 경우 Mongo의 쿼리 결과가 먼저 set redis를 반환하고 시간 초과를 설정한 다음 콜백을 호출합니다.
    2. 비즈니스 변경으로 인해 캐시에 동기화할 수 없습니다.", 이에 대해 걱정할 필요가 없습니다. 사용 가능한 캐시는 일반적으로 시간 제한을 설정하여 설정되는 데이터의 유효성을 확실히 고려합니다. redis를 채울 때 시간 제한이 설정되는 코드입니다.

    으아아아

    회신하다
    0
  • 취소회신하다