問題タブ [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.
redis - Protobuf-net で Booksleeve を使用するにはどうすればよいですか?
RedisConnection Set メソッドを使用してバイト配列を設定していますが、データを取得するにはどうすればよいですか? get はラップされたバイト配列を返しますか?
リンク:
これは機能しますが、正しくありません。
より詳しい情報:
asp.net - ベンチマーク中のRazorページでのBookSleeveWait()タイムアウト
私はWindowsでBookSleeve(およびredis)をいじり始めたばかりで、ここで間違っている可能性のあることについて何らかの方向性を得ることができるかどうかを確認したいと思っていました。次のコードを使用し、それに対してabを実行すると、w3wsvc.exeがクラッシュする前に最大500のリクエストを処理できます。デバッグするプロセスに接続すると、redisサーバーへのリクエストがタイムアウトしていることがわかります。
.NET async /awaitCTPをまだインストールしていません。
さて、たった1つのWebページがヒットしただけで、これはうまく機能します。私はこれをホストしているサーバーを強打したかったので...
ab -n 1000 -c 5 http://server/page.cshtml
500〜700のリクエストを処理してから、クラッシュします。この種の負荷がかかるかどうかはわかりませんが、これは私のコードに明らかな欠陥があることを示していると思います。私が間違っていることを指摘するよりも賢い人が欲しいと思います。
ありがとう!
asp.net - Booksleeve 接続をどのくらいの頻度で開閉する必要がありますか?
C#/ASP.NET 4 アプリケーションで Booksleeve ライブラリを使用しています。現在、RedisConnection オブジェクトは、MonoLink クラス全体の静的オブジェクトです。この接続を開いたままにしておく必要がありますか、それとも各クエリ/トランザクションの後に開いたり閉じたりする必要がありますか (現在行っているように)。ちょっとだけ混乱。今のところ、私がそれをどのように使用しているかは次のとおりです。
回答/洞察をお寄せいただきありがとうございます。また、このライブラリの公式ドキュメントはありますか? ありがとうございます^_^。
asp.net - Redis がサポートする ASP.NET SessionState プロバイダー
私は現在、Booksleeve を使用して Redis に支えられた ASP.NET SessionState カスタム プロバイダーを開発しています。Redis は、(使用する必要がある場合) SessionState に最適なように思えました。理由は次のとおりです。
- Redis は RDBMS のように永続的に格納できますが、はるかに高速です。
- Key/Value データストアは、SessionState のインターフェイスにより適しています。
- データは (デフォルトのセッション プロバイダーのように) インプロセスで保存されないため、SessionState は Web サーバーの再起動やクラッシュなどに影響を与える可能性があります。
- Redis は、必要に応じて簡単に水平に分割できます。
だから、私たち(私の会社)はGitHubでオープンソース化することを検討しているので、これが誰にとっても役立つかどうか疑問に思っています. 考え?
アップデート:
昨日、これの最初のバージョンをリリースしました: https://github.com/angieslist/AL-Redis/blob/master/AngiesList.Redis/RedisSessionStateStore.cs
c# - BooksleeveでRedisパイプラインリクエストを実装するにはどうすればよいですか?
Redisトランザクションとパイプラインの違い、そして最終的にはBooksleeveでパイプラインを使用する方法について少し混乱しています。BooksleeveはRedisトランザクション機能(/ )をサポートしているようですが、パイプライン機能についてのAPI/テストには言及されていません。ただし、他の実装では、パイプラインとトランザクションの間に違いがあることは明らかです。つまり、以下のredis-rubyバージョンで証明されているように、アトミック性ですが、一部の場所では、これらの用語は同じ意味で使用されているようです。MULTI
EXEC
redis-rubyの実装:
MULTI
代わりに/を使用EXEC
しますが、トランザクションが完了するまで他のすべてのユーザーをブロックしているように見えるので(私の場合は必要ありません)、パフォーマンスが心配です。Booksleeveでパイプラインを使用したり、それらを実装する方法についてアイデアを持っている人はいますか?
c# - BookSleeveを使用してオープンなRedis接続を維持する
BookSleeveライブラリを介してRedisをフェッチする堅実なパターンを持っている人はいますか?
つまり:
BookSleeveの作者である@MarcGravellは、毎回接続を開いたり閉じたりするのではなく、アプリ全体で1つの接続を維持することを推奨しています。しかし、ネットワークの中断をどのように処理できますか?つまり、接続は最初は正常に開かれる可能性がありますが、一部のコードがRedisに対して読み取り/書き込みを試みると、接続が切断された可能性があり、接続を再度開く必要があります(開かない場合は正常に失敗します-しかしそれはあなたのデザインのニーズ次第です。)
一般的なRedis接続の開始と、各読み取り/書き込みの前に使用される一般的な「アライブ」チェック(+アライブでない場合はオプションのアウェイク)をカバーするコードスニペットを探しています。
この質問は問題に対する良い態度を示唆していますが、それは部分的であり(たとえば、失われた接続を回復しません)、その質問に対する受け入れられた答えは正しい方法を導きますが、具体的なコードを示していません。
このスレッドが確実な答えを得て、最終的に.NetアプリケーションでのBookSleeveの使用に関して一種のWikiになることを願っています。
-----------------------------
重要な更新(2014年3月21日):
-----------------------------
Marc Gravell(@MarcGravell)/ Stack Exchangeは最近、Booksleeveに代わるStackExchange.Redisライブラリをリリースしました。この新しいライブラリは、とりわけ、内部で再接続を処理し、私の質問を冗長にします(つまり、Booksleeveや以下の私の答えでは冗長ではありませんが、今後の最善の方法は、新しいStackExchange.Redisライブラリの使用を開始することです)。
c# - BookSleeve 経由で Redis を使用する。未知のパラメータ
C# 経由で redis を使用しようとしています。このために、BookSleeve を選択しました。しかし、ほとんどのメソッド (読み取り/書き込み) にはパラメーターが必要であることに興味があります: int db
。このパラメーターの説明は、「操作するデータベース」です。を設定db=0
すると、コマンド KEYS を入力する redis-cli.exe を使用してキーを確認できます。の場合db != 0
、キーは表示されません。
問題は、このパラメーターが正確に何を意味するのかということです。ウェブで情報を見つけられませんでした。
redis - BookSleeveを使用してRedisから文字列キー/値を取得する適切な方法は何ですか
私はBookSleeveを初めて使用しますが、Webサイトに記載されているものと比較してもAPIが変更されているようです。
ウェブサイトに記載されているとおり:
「APIは1.0に少し変更される可能性がありますが、StackExchangeを駆動するのに十分安定していることに注意してください。」
したがって、ドキュメントはもう最新ではないようです。
とにかく、問題は、以前に保存したキーを取得する正しい方法は何ですか。'String'APIを使用しています。
開いた接続を想定して、次は正しいですか?:
booksleeve - RedisConnection を Booksleeve に格納するためにシングルトンを使用する方法は?
Booksleeve 1.1.0.6 (最新の nuget パッケージ) を使用しています。
Webアプリケーション全体に単一の接続を使用したいので、シングルトンに保存しています:
RedisConfig.GetUnsecuredConnectionメソッドは、 BookSleeveテストで使用されるものと同じです。
操作を実行しようとすると、InvalidOperationException: The queue is closed という例外が発生します。
[InvalidOperationException: キューが閉じられました] C:\Dev\BookSleeve\BookSleeve\MessageQueue.cs:73 の BookSleeve.MessageQueue.Enqueue(RedisMessage アイテム、ブール値の highPri): C の BookSleeve.RedisConnectionBase.ExecuteVoid(RedisMessage メッセージ、ブール値の queueJump): \Dev\BookSleeve\BookSleeve\RedisConnectionBase.cs:794 ASP.welisten_booksleevetests_aspx.SaveDictionaryToRedis(Dictionary`2 辞書) +173 ASP.welisten_booksleevetests_aspx.Page_Load(オブジェクト送信者、EventArgs e) +67 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp、オブジェクト o、オブジェクト t、EventArgs e) +25 System.Web.UI.Control.LoadRecursive() +71 System.Web.UI.Page.ProcessRequestMain(ブール値 includeStagesBeforeAsyncPoint、ブール値 includeStagesAfterAsyncPoint) +3064
waitForOpenパラメータをtrueとfalseに設定してこれを試しました
実行しようとしているコードは次のとおりです。
asp.net - BooksleeveでオープンなRedisPubSubサブスクリプションを維持する
Redis pubsubチャネルを使用して、ワーカープロセスのプールからASP.NETアプリケーションにメッセージを送信しています。メッセージを受信すると、アプリケーションはそのメッセージをSignalRを使用してクライアントのブラウザーに転送します。
Redisへのオープン接続を維持するためのこのソリューションを見つけましたが、接続を再作成するときにサブスクリプションは考慮されません。
現在、Global.asaxファイルでRedispubsubメッセージを処理しています。
この問題は、現在のRedisConnectionが何らかの理由で閉じられたときに発生します。RedisConnectionGateway
問題の最も簡単な解決策は、接続がリセットされたときにクラスからイベントを発生させ、新しいを使用して再サブスクライブすることRedisSubscriberChannel
です。ただし、接続のリセット中にチャネルに公開されたメッセージはすべて失われます。
この状況を処理するための推奨される方法の例はありますか?