検索

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

什么样的场景下需要同时使用Redis和Memcached?

如题,见过一些工程同时使用Redis和Memcached,感觉这样很麻烦。
如果不是早期使用Memcached且难以移植到Redis,还有没有其他可能性?

天蓬老师天蓬老师2763日前682

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

  • 高洛峰

    高洛峰2017-04-22 09:01:06

    以前の工場での使用方法は次のとおりです:

    • ユーザー情報などのエンティティ データは、MySQL の 2 次キャッシュとして、protobuf エンコードで 1 週間の有効期限で memcached に保存されますprotobuf编码存入memcached,一周失效期,作为MySQL的二级缓存
    • 列表数据比如用户的订阅列表放redis,相应数据MySQL也做备份,但redis读不到不会再去MySQL读

    总结:

    • redis的数据结构比较丰富,适合存集合、列表或者有序表
    • redis在当时还没有比较完善的分布式方案,所以尽量不存大的实体数据(当然随着用户量的暴增,我们后来用哈希key的方式实现了伪分布式)
    • memcached比较简单,速度也比redis要快,适合存实体数据,但当时遇到的问题是json的包装和解析会成为瓶颈,所以后来我们全部换成了protobuf
    • ユーザーのサブスクリプションリストなどのリストデータはredisに保存され、対応するデータもMySQLによってバックアップされます。ただし、redisがそれを読み取れない場合、再度MySQLに読み込まれることはありません
    。 🎜 🎜概要:🎜 🎜 🎜Redis は豊富なデータ構造を備えており、セット、リスト、または順序付けされたテーブルの保存に適しています🎜 🎜当時、Redis には比較的完全な分散ソリューションがなかったので、大きなエンティティ データを保存しないようにしました (もちろん、ユーザー数が劇的に増加したため、後にハッシュ キーを使用した疑似分散を実装しました)🎜 🎜memcached は redis よりも比較的シンプルで高速であり、エンティティ データの保存に適しています。ただし、その時点で遭遇した問題は、json のパッケージ化と解析がボトルネックになることでした。 protobuf に切り替えました 🎜 🎜

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-22 09:01:06

    キー/値以外にさらに多くのデータ型をサポートする必要がある場合、または保存されたデータを削除できない場合は、Redis を使用することがより適切です。また、単にデータをキャッシュするだけの場合は、明らかに memcached を使用する方が適切です。つまり、比較すると、redis はストレージに適しており、memcache はキャッシュに適しています。

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-22 09:01:06

    必要なもの频繁查询变化频率不是太高は、この 2 つが役立つ場所です

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-22 09:01:06

    stackoverflow の誰かが「Redis と比べて memcached は恐竜ですか?」という質問をし、redis の作者が答えを与えました (http://stackoverflow.com/questions/2873249/is-memcached-a-dinosaur-in- Redis との比較)。総合的に見てどちらの性能も非常に優れているので、どちらが性能が高いか悩む必要はありません。ただし、redis が提供する永続化およびデータ同期メカニズムは memcached では利用できないため、永続性が必要な場合は redis のみを使用できます。さらに、単純なキーと値のストレージには memcached で十分ですが、ハッシュ、リスト、セット、zset などのより高度なデータ構造を使用したい場合は、redis がこれらのタイプを提供しており、これらのタイプを使用するのがより便利です。

    返事
    0
  • キャンセル返事