83

Windows環境で本番用にmemcachedを実装している人はいますか? 私が読んだ多くのブログのため、Windows で memcached を実行するなど、特に本番環境で使用するために Windows で memcached を実行することはお勧めしませ

もう 1 つ、c# および .net 3.5 で使用するのに適した memcached クライアントはどれですか? Memcached Providers @ CodeplexBeitmemcached、およびmemcached provider @ Sourceforgeなど、多くの代替手段を見つけました

4

11 に答える 11

49

Why do you need to run memcached on windows? It’s an expensive affair in a production environment.

If your code needs to run in a Windows environment get a windows memcached client and talk to a *nix based memcached machine.

In a production environment running memcached on Server 2003 or 2008 would mean that you get licenses for all those boxes. Linux will offer you all the OSS benefits. TCO will rise linearly with memcached on Windows

Edit:

It’s been around 1.5 years since I wrote this answer and lot of things have changed since. You’ve to take notice, especially when someone like Dustin comments.
So here’s how you can get memcached on windows running. Download memcached for windows from Couchbase (formerly Northscale).
Typically if you plan to run memcached on the same production machine you’d want to start it in limited memory, i.e. define the maximum memory memcached is allowed to use.

c:\Program Files\memcached>memcached.exe -m 128.

Here memcached runs with a maximum of 128 mb usage. You don’t want memcached to take up all the memory on your webserver.

The moment you decided to scale out memcached you’ll need to consider what I said earlier. Additionally compress your values in the key value combinations. Web servers typically consume very little CPU (2-3%) usage and compression brings in a lot of value to network throughout in comparison to the CPU usage. If you are too concerned about normal compression, try LZO

于 2008-12-09T12:08:59.187 に答える
21

ここで誰もまだRedisについて言及していないことに驚いています。Redisは、最も機能が豊富で最速 (エントリー レベルの Linux ボックスで 1 秒あたり 110,000 SET) のキー値データ ストアの 1 つであり、文字列の豊富なデータ構造をサポートしています。セット、リスト、ソート済みセット、およびハッシュ。

Windows は公式にサポートされているプラ​​ットフォームではありませんが、Windows の下で完全に動作し、すべてのテストに合格しています。ここで Windows ビルド (Cygwin を使用) を入手できます: https://github.com/ServiceStack/ServiceStack.Redis#redis-server-builds-for-windows

また、現在使用されているほぼすべてのプログラミング言語のクライアント バインディングも備えています。https://github.com/ServiceStack/ServiceStackで、あらゆる C# POCO タイプのネイティブ API サポート、トランザクション サポート、スレッドセーフ クライアント マネージャーを備えた豊富なオープン ソース C# Redis クライアントを管理してい ます。レディス

于 2010-03-31T18:51:44.563 に答える
12

当時、Velocity は存在していなかったので、私が働いている会社である Skiviez のために Windows への memcached ポートを使用しました。主に、同じマシン上の複数のワーカー プロセスに集中キャッシュを提供するためだけに存在します。適度に使用されている e コマース サイト (1 日あたり最大 18,500 ヒット) で、約 18 か月間正常に動作しています。私が使用したクライアントは、iBATIS.NETのキャッシュ プロバイダーとして統合された Enyim でしたそのクライアントは十分に機能しているようです。memcached クライアントも、そもそもそれほど複雑ではありません。

もう一度やり直さなければならなくなった場合、分散キャッシュ ソリューションのために Windows にとどまることに専念していたなら、おそらく Velocity を検討するでしょう。しかし、現在は機能しているので、触れません。

(余談ですが、それ以来Cache*、スケジュールされたタスクによって毎晩更新されるデータベースのキーテーブルに特定の列を追加することで、キャッシュの必要性をほとんどなくしました。これにより、当初からリソース全体への負担が大幅に軽減されました。キャッシュされた結果をmemcachedに保持することにより、データベースにクエリを実行することでCPU時間に影響を与え、キャッシュされた結果をmemcachedに保持することで、その後のメモリの可用性に負担をかけます. また、データのキャッシュされたバージョンがアクセスされている場合と、計算されたバージョンにアクセスされている場合のコードでより明確になりました.分散キャッシュを使用する理由はたくさんあると思いますが、一歩下がって、本当に必要かどうかを検討することは常に価値があります!)

于 2009-07-11T01:30:23.030 に答える
7

あなたが取り組んでいるプロジェクトが何であるかはわかりませんが、Microsoft Velocity プロジェクトを見てみたいかもしれません 。ページから:

「Velocity」は、スケーラブルで高性能なアプリケーションを開発するための分散インメモリ アプリケーション キャッシュ プラットフォームです。"Velocity" は、共通言語ランタイム (CLR) オブジェクトをキャッシュするために使用でき、単純な API を介してアクセスを提供します。「速度」の重要な側面は、分散キャッシュのパフォーマンス、スケーラビリティ、および可用性です。

いくつかのデモを見たことがありますが、.net フレームワークとの統合が非常にうまくいっているようです。

クライアントAPIの問題は、LAMPスタックを使用して、前述のように、別のボックスでmemcachedのインスタンスを実行する必要があることです。速度を使用すると、引き続き同じスタックで実行され、.net プラットフォーム全体でより緊密に統合されることを意味します。

そうは言っても、速度を他の .net アプリケーションのキャッシュとして使用したい場合は、独自の API を作成して、速度データを公開して消費する必要があることに気付くかもしれません。

于 2008-12-09T02:50:01.577 に答える
6

Velocity は管理が少し複雑ですが、memcached よりもはるかに強力です。私はアンチ memcached ではありません。しかし、今後、純粋な .NET ベースの新しいプロジェクトが、現在リリースされていない状態であっても、Velocity を活用しないのは狂気の沙汰です。

于 2008-12-29T17:52:16.797 に答える
3

クライアントAPIの問題は、LAMPスタックを使用して、前述のように、別のボックスでmemcachedのインスタンスを実行する必要があることです。

まったくそうではありません。Memcached を実行するために LAMP (Linux、Apache、MySQL、PHP) スタックは必要ありません。現在、速度が CTP を超えるまでは、速度よりも memcached を好みます。ベロシティを少しいじってみましたが、扱いにくすぎることがわかりました。私はそのKISSのすべてをフォローしています... シンプルに保ちます。キャッシングほど簡単なことはありません... Get (キー) ... Put (キー、値) ... Destroy (キー)。

于 2009-02-24T23:19:51.843 に答える
1

この質問の解決策を確認するには、以下のリンクをたどってください。

Windows環境で本番環境で使用するためにmemcachedを実装できます。

http://www.codeproject.com/Articles/96698/Implementing-Distributed-Caching-using-Memcached http://www.deanhume.com/Home/BlogPost/object-caching----net-4/37 http ://latebound.blogspot.com/2008/10/using-memcached-from-c.html

于 2012-08-16T11:36:41.023 に答える
1

私はここでのパーティーに少し遅れていることを知っています、そしてすでにたくさんの良い答えがあります.

Windows Server で Membase を使用して大きな成功を収めています。これは Memcached と 100% 互換性があり、優れた GUI インストーラーと Web 構成サーバーによってビルドされます。管理は非常に簡単です。

このスレッドの範囲外ですが、他にも NoSQL 機能が含まれていますが、一見の価値があります。開発、テスト、および (限定的な) 運用サーバー用の無料ライセンスがあります。

メンバーベースのダウンロード

Membase の追加機能が不要な場合は、同じページに Memcached のみの Windows インストールがあります。

于 2011-09-23T17:17:32.720 に答える
0

Windows で memcached クライアントを実行することに関心がある場合は、その作業を実行できる 2 つの追加のオープン ソース サーバーがあります。どちらも標準の memcached サーバー プロトコルを実装し、Java で記述されているため、Windows 上で実行されます。

于 2012-01-13T15:30:20.880 に答える