問題タブ [booksleeve]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
494 参照

c# - Sets と .Net クライアントを使用して、redis で 2 つのコレクションを管理します。これは正しいアプローチですか?

私は.NET領域のredisを操作/調査しようとしています.定義されたタスクはセットとredis自体で最もよくカバーされていないという印象があります(変更する必要があるエンティティがあるため)-おそらく使用する方が良いでしょういくつかの他のアプローチ/または redis dataTypes ここ (最初のアイデアの 1 つは、(プロパティを管理するために) redis ハッシュを操作することでしたが、関連するエンティティのコレクションを取得する必要があるため、セットを試してみることにしました。この操作は一般的に最も重要なもの)。だから、私が今やったこと:

現在、エンティティの次の構成があります。

私がやろうとしているのは、エンティティ アイテムを 2 つのコレクションで管理することです。

  1. 現在- クライアント (キャッシュ) で利用可能なエンティティ アイテム (最大 5000) のコレクション
  2. Raw - 承認が必要なエンティティ アイテムのコレクション (現在のコレクションの一意の ID の最大 10%)

これらのコレクションに対して実行する操作は次のとおりです

  1. Get All Entity items from Current collection : GetCurrent - 最も重要なタスク
  2. Raw コレクションの変更:

    2.1) 新しいエンティティを Raw に追加します (現在のコレクションの適切なカウンター/状態を変更できます) : AddRaw

    2.2) Raw の既存のエンティティを更新する (そのような ID が既に利用可能な場合) : UpdateRaw

  3. 現在のコレクションを変更する

    3.1) Raw コレクションからのすべての変更が Current に適用されます (まだ行われていない場合): SyncCurrent

    3.2) Raw コレクション エンティティを返す (増分変更)

    3.3) Raw コレクション エンティティをクリアする (コレクションはリセットされます)

アプローチ:

  1. Set タイプのコレクションを定義します (コレクションに関連するアイテムのリストを取得できるようにするため): SMEMBERS

  2. コレクションのアイテムの ID のみを含む追加のコレクション Current:Ids、Raw:Ids を作成します - 元のコレクション内のアイテムかどうかを定義します: SISMEMBER

  3. 新しいアイテムをセットに追加: SADD

  4. セット内のアイテムの変更: Get (SMEMBERS: Id をマスク要素として使用する SSCAN またはアイテムを反復処理する ( SMEMBERS )、ID を使用してエンティティを取得する)、RemoveOldFromSet : SREM、AddUpdated : SADD

問題、問題 (単体テスト中に特定): (報告されたすべての問題は、StackExchange.redis クライアントの機能ではなく、redis サーバー自体への接続に関連しているようです)

  1. 新しい StackExchange クライアントは、SMEMBERS で timeOut 例外をスローすることがあります (現在のコレクションに 500 アイテム)

  2. 項目 (750 以上のエントリ) を Current および Current:Id のセットに挿入しようとすると、StackExchange トランザクションで timeOut 例外がスローされ、現在の connectionTimeOut および SyncTimeOutrs は 5000 ミリ秒 (5 秒) に設定されます。

いくつかのテストを実行した後 (セット内の数百のアイテムで、選択したアプローチは最初は間違っていたと思います。Microsoft のキャッシュを使用して、これを再設計する必要があります)。今説明した方法で実装できないのですか?

前もって感謝します。

0 投票する
1 に答える
1979 参照

c# - BookSleeve ConnectionUtils の代わりに StackExchange.Redis ConnectionMultiplexer を使用して Redis センチネルに接続します。

BookSleeve ConnectionUtils の代わりに StackExchange.Redis ConnectionMultiplexer を使用して Redis センチネルに接続するにはどうすればよいですか。

私は現在 BookSleeve を使用しています:

ConnectionUtils.Connect("127.0.0.1:26379,serviceName=mymaster");

私はそれを StackExchange.Redis に置き換えようとしました: ConnectionMultiplexer.Connect("127.0.0.1:26379,serviceName=mymaster");

しかし、それは機能していません。

何か案は?

0 投票する
1 に答える
278 参照

redis - Booksleeve を使用してキー/値のリストを取得するにはどうすればよいですか?

キー名が「猿」で始まる値のリストを取得しようとしています。

これに関するドキュメントは本当に見つかりませんでした。:(

これどうやってするの?どの API を使用すればよいですか? KeysSetsStrings? どのような方法ですか?

または、まだ利用できませんが、回避策はありますか?

ありがとう

0 投票する
1 に答える
162 参照

performance - Redis 2.4 / CentOS 6.2 のネットワーク スループットは 4 分ごとに低下します... Redis... それともクライアント関連ですか?

昨日、Redis 2.4 / CentOS 6.2 キャッシュ サーバーで奇妙なパフォーマンスの低下が発生しました。4分ごとに循環します。

マスター サーバーの New Relic のスクリーンショットは次のとおりです

そして、これは同じ期間のスレーブの 1 つです: https://www.evernote.com/shard/s368/sh/802b01bc-294d-46a5-adaa-f64e2e8c8bd2/6cbe244d4570fae63ee412cd1de5a841

私たちの環境に関するいくつかの情報: - キャッシュ: 8 つの CPU、30GB の RAM、および 600Mbps の内部ネットワーク帯域幅を備えた 4 台の Linux クラウド サーバー - Web: 4 つの CPU と 200Mbps の内部ネットワーク帯域幅を備えた 30 台の Windows クラウド サーバー

Web サーバーはそれほどビジーではないようですが、ディップが発生するとタイムアウトします。これがクライアントの問題である可能性を排除していないため、彼は Web アプリケーションに関する詳細情報を提供しています。

Data Cache および AngieList v???? 用の Redis BookSleeve Client 1.1.0.4 を使用した Microsoft ASP.Net MVC 3 Web アプリケーション (このバージョンの BookSleeve と互換性があるもの) セッション状態。

最初は、Redis への接続の量に問題がありました。私が理解しているように、Redis 2.4 には一定数の接続クライアントがあります。

そのため、セッションとデータ キャッシュを別の Redis インスタンスに分離しました。残念ながら、AngiesList は複数の接続をサポートしていないため、マスター サーバーにのみ接続されます。BookSleeve クライアント接続は、.Net の System.Random を使用してランダム化されます。

データ キャッシュのクライアント接続数は、すべてのサーバーで約 200 です。セッション キャッシュには、ピーク時に約 4100 の接続がありました。

Redis のログを詳しく調べ、iftop と top を監視して実行しましたが、有用なものは見つかりませんでした。

では、なぜこれらのディップが発生しているのでしょうか。

私は .Net 開発者であり、Linux の専門家ではありません。私たちは Redis/Linux 分野のスペシャリストを持っていません... そのため、誰かが検索を絞り込むのを手伝ってくれることを願っています.

バックアップ計画の一環として、互換性のあるセッション状態パッケージを使用してクライアントを ServiceStack Redis v3 に更新し、念のため Redis 2.8 でサーバーを構成しています。

ありがとう。

0 投票する
2 に答える
100 参照

windows - Booksleeve は Windows Redis (Windows サービスとしてインストールされた Redis) で動作しますか?

Booksleeve は Windows Redis (Windows サービスとしてインストールされた Redis) で動作しますか?

Redis を Windows サービスとしてインストールしましたが、BookSleeve を使用できるかどうか知りたいですか? それとも、BookSleeve は Unix システムにインストールされた Redis 専用ですか?

0 投票する
1 に答える
1812 参照

c# - フィルターによる Redis Cache Static List 検索

約 500 項目の静的オブジェクト リストがあります。

このオブジェクトには、(id [int],Name [string], attribute1 [string], attribute2 [string]) のようなプロパティがあります。

このオブジェクトを文字列にシリアル化し、文字列キー値として redis に保存しました。しかし、オブジェクト属性のさまざまなユーザー検索フィルターに基づいて、この 500 項目のリストをフィルター処理し、このリストのサブセットをユーザーに提供する必要があります。

このリストをテーブルとインデックスに追加し、SQL を使用して検索フィルターを適用するという 2 つの方法でそれを行うことができます。その他は、毎回 redis からこのリストを取得し、オブジェクトのリストに逆シリアル化し、linq を使用してフィルターを適用することです。私は別のサーバーに redis を持っているので DB もあります。各 Web サーバーにもそのキャッシュのコピーを置きたくありません。

では、最高のパフォーマンスを得るにはどうすればよいのでしょうか? またはそれをより速く行う別の方法はありますか?