問題タブ [redis-py]
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.
python - redis get function return なし
redis とやり取りするフラスコ アプリケーションに取り組んでいます。このアプリケーションは、redis アドオンを使用して heroku にデプロイされています。
インタラクションでいくつかのテストを行っているときに、設定したキーと値のペアを取得できません。代わりに、戻り値の型として常に None を取得します。次に例を示します。
上記のように、テスト ルートは None を出力します。値が設定されていないことを意味します。私は混乱しています。ローカル ブラウザでサーバーをテストすると動作し、heroku python shell を使用して redis とやり取りしようとすると動作します。
Python シェルでのテスト:
私は今混乱しています。Flask を使用して redis を適切に操作するにはどうすればよいですか?
python - Redis での HyperLogLog の実装が認識されない
ここで、PFADD 操作を使用して値をキーに挿入する単純なコードを実行しようとしていますが、次のエラーが発生します。
ResponseError: 不明なコマンド 'PFADD'
私のコードは次のとおりです。
- Python バージョン: 2
- パンダのバージョン: 0.19.0
- Redis バージョン: 2.10.5`
ここで何か不足していますか?
python - AWS Redis + NGINX の背後にある uWSGI - 高負荷
uwsgi + nginxでpythonアプリケーション(フラスコ+ redis-py)を実行し、aws elasticache(redis 2.8.24)を使用しています。
アプリケーションの応答時間を改善しようとしているときに、高負荷 (1 秒あたり 500 リクエスト/loader.io を使用して 30 秒間) でリクエストが失われていることに気付きました (このテストでは、負荷のない単一のサーバーのみを使用しています)バランサー、1 つの uwsgi インスタンス、4 つのプロセス、テスト目的で)。
もう少し詳しく調べたところ、この負荷がかかると、ElastiCache への一部のリクエストが遅くなることがわかりました。例えば:
- 通常の負荷: cache_set 時間 0.000654935836792
- 高負荷: cache_set time 0.0122258663177 これはすべてのリクエストで発生するわけではなく、ランダムに発生します..
私の AWS ElastiCache は、cache.m4.xlarge の 2 つのノードに基づいています (デフォルトの AWS 構成設定)。過去 3 時間に接続された現在のクライアントを表示します。
現在 14 台のサーバー (そのうちの 8 台は XX RPS の高トラフィックでこのクラスターを使用) であるため、これは意味がないと思います。クライアント レートがはるかに高くなると予想されます。
uWSGI 構成 (バージョン 2.0.5.1)
Nginx は、unix ソケットを使用した uWSGI への単なる Web プロキシです。
これは、redis への接続を開く方法です。
これは、たとえば値を設定する方法です。
これは私が値を取得する方法です:
バージョン:
- uWSGI: 2.0.5.1
- フラスコ: 0.11.1
- redis-py: 2.10.5
- レディス: 2.8.24
したがって、結論は次のとおりです。
- 14 台のサーバーが接続され、それぞれに 4 つのプロセスがあり、それぞれが redis クラスター内の 8 つの異なるデータベースへの接続を開くと、AWS クライアントの数が少なくなる理由
- リクエストの応答時間が長くなる原因は何ですか?
- 高負荷時の ElastiCache や uWSGI のパフォーマンスに関するアドバイスをいただければ幸いです。
redis - 最新バージョンで redis-server を起動する
の機能を備えた Redis 3.2.5 をダウンロードしましたが、PFADD
それを使用するつもりです。最初は、ルート ディレクトリに redis-server と入力するだけで、バージョン 2.6.9 で起動していました。
少し検索した後cd redis.3.2.5/
、同じコマンドを実行してから実行すると機能することがわかりました。そのときは 3.2.5 で開始されましたが、もう一度実行すると 2.6.9 に戻っています。
何か案は?
redis - スコアごとにソートされたトリミングセット
Django アプリでは、redis を使用して、ユーザー ID がエポック以降の現在のスコアと共に保存されるグローバルな並べ替えられたセットを維持します。
11 分ごとに、ソートされたセットを 10 分以内に保存された値のみにトリミングする非同期タスクを実行します。
以下はこれを達成しますか?エッジケースについては不明です(たとえば、これにより古い値がすべて削除されるか、リークが発生するかなど):
python - Sentinel および redis-py で Redis を使用している場合、新しいマスター ノードにフェイルオーバーする方法は?
Sentinel フェールオーバーをサブスクライブするには、チャネルの名前は何ですか? サブスクライブされた関数でマスターを更新する必要があることをどのように検出しますか?
高可用性とフェイルオーバーのために Redis Sentinel を使用してマルチノード Redis をセットアップしています。
Redis マスターに障害が発生し、システムが新しいマスターを選択したことを検出するために、Pub/Sub を Redis にセットアップする必要があります。
python - タプルの2番目の要素がスコアとして使用されるredisソートセットにタプルのPythonリストを保存する
次のようなタプルの Python リストがあります。
各タプルの2番目の値がスコアとして使用されるように、それをredisソートセットに渡すにはどうすればよいですか? 試してみzadd(sorted_set, *lst)
ましたが、エラーが発生していますvalue is not a valid float
。
redis - redis-py は登録済みスクリプトに evalsha を自動的に使用しますか?
Lua スクリプトを redis クライアントに登録すると、次のようになります。
次に、デフォルトのクライアントでスクリプトを実行します。
これは内部で evalsha を自動的に使用しますか、それともスクリプト全体を毎回サーバーに送信しますか?
python - Flask で作業して int のリストを取得し、それらの値をエンドポイントとして返します
単純に use localhost/data/?user=[123,234,345] を渡すことができるような方法で Flask を使用したいと思います。これらの値は本体に返されます。
これは私が試したことです:
私は何を間違っていますか?