ホームページ  >  に質問  >  本文

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

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

怪我咯怪我咯2717日前705

全員に返信(3)返信します

  • 巴扎黑

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

    spring-data を使用すると良いでしょう。 mongodb と redis があり、mongodb を操作するには spring-data-jpa を直接使用するのが便利で速いです。さらに、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 ':'
    Use prefix、collName、およびクエリステートメントを使用して Redis でキーを生成し、最初にredis クエリの結果; そうでない場合は、Mongo のクエリ結果が最初に redis を返し、タイムアウトを設定して、コールバックを呼び出します。2. 件名のように、「mongoose-redis-cache はステートメントをキャッシュします。ビジネスが変更された場合、キャッシュに同期することはできません。」という場合は、これについて心配する必要はありません。使用可能なキャッシュには、通常はタイムアウトを設定することによって設定されるデータの有効性が確実に考慮されます。 redis をバックフィルするときにタイムアウトが設定されるコード。
    リーリー

    返事
    0
  • キャンセル返事