問題タブ [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.
redis - redis-python db=0 パラメータは何に使用されますか?
db
redis-python ドキュメントを読み、オンラインで検索しましたが、 のパラメータについて何も見つかりませんRedis()
。何に使うの?
python - Pythonを使用してredisでアトミックgetまたはset&getキーを実装するにはどうすればよいですか?
私は redis サーバーを持っており、次のことを行うアトミック (または疑似アトミック) メソッドを実装したいと考えています (注意: Redis サーバーへの複数のセッションを持つシステムがあります):
- いくつかのキーKが存在する場合、その値を取得します
- それ以外の場合は、関数F ( salt を生成する)によって生成されたランダムな値を使用してSETNX 関数を呼び出します。
- 現在のセッションによって生成されたばかりのキーKの値を redis に問い合わせます(または、別のセッションによって "同時に" - 現在のセッションが生成する少し前)。
(値が存在するかどうかを確認する前に) 関数Fで値を事前に生成し、キーが存在しない場合はそれを使用したくない理由は次のとおりです。
- 正当な理由もなくFを呼び出したくありません(集中的な CPU 動作を引き起こす可能性があります (
- 次の問題を回避したい : T1 : セッション 1 がランダムな値VAL1を生成した T2 : セッション 1 がキーKが存在するかどうかを尋ね、「False」を取得した T3 : セッション 2 がランダムな値VAL2を生成した T4 : セッション 2 がキーKが存在する かどうかを尋ねたT5 : セッション 2 は、値VAL2でSETNXを呼び出し、これからVAL2を使用しますT6 : セッション 1 は、値VAL1でSETNXを呼び出し、これからキーKの実際の値がVAL2であるVAL1を使用します
私が作成したpython疑似コードは次のとおりです。
別の解決策はありますか?
python - redis-py 用の NUMSUB コマンドはありますか?
Python クライアントの redis の NUMSUB コマンドに相当するものはありますか?
ドキュメントを調べたところ、そのチャネルのサブスクライバーの数を返す publish() メソッド自体以外は見つかりませんでした。ただし、加入者の数を事後的に知ることは、私にとってあまり役に立ちません。
python - redis.exceptions.ConnectionError: localhost:6379 に接続中にエラー -2 が発生しました。名前やサービスは不明
サーバーでコードを実行するとこのエラーが発生し、env は debian であり、Python2.7.3
実行するredis-cli
と、エラーなしで正しく動作します:
python - ロックが redis-py で機能しない - 不明なコマンド 'EVALSHA'
以下は、redis でロックを作成、取得、解放します。
acquire()
次のエラーがスローされるのはなぜですか?
私のセットアップ: python 2.7.8、redis 2.4.5 64bit、win8
python - Python redis pubsub:公開されると型はどうなりますか?
pub.py
出力:
sub.py
出力:
タイプが datetime.datetime から str に変更されまし
た。datetime obj を str から減算できない期間を見つけようとしているため、タイプを保持することは可能ですか?
python - 接続エラーが発生した場合の Python Redis の UnicodeDecodeError
Redis への接続をテストするための単体テストをいくつか書いています。ある時点で、接続が失敗し、Python Redis がRedisConnectionError
.
ただし、基になるソケット接続が失敗し、実際にエラー (WSACONNECTIONREFUSED) が発生しますが、テキスト メッセージは私のロケール設定を使用します。メッセージはフランス語です。
このコードを実行している上位層にそのエラーを報告しようとするため、Python Redis に問題が発生するようです。
次のように、UnicodeDecodeError が発生します。
実際、実際のエラー メッセージは次のとおりです。
英語以外のロケールである Python Redis を使用しているのは地球上で私だけではない可能性が高いため、これは奇妙に思えます。しかし、同じ問題に直面している人をインターネット上で見つけることができませんでした。
setlocale()
電話の直前にロケールを変更しようとしましたが、メッセージはフランス語のままでした。
そこにはどのような解決策がありますか?