問題タブ [python-memcached]

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 投票する
1 に答える
171 参照

django - Memcached Compare-And-Set パターンが間違った結果をもたらす

次の Guido の指示に従って、memcached の比較と設定のパターンを実装しようとしています。

http://neopythonic.blogspot.nl/2011/08/compare-and-set-in-memcache.html

しかし、私はそれを正しく理解していないようで、何が問題なのかわかりません。以下のファイルは、Django (1.4.5 Final) と python-memcache (1.48) を使用しています。

設定.py

djangocache.py

それを実行する:

競合状態を処理するときに予想されるように、6、7 などを出力することがあります。複数のクライアントのインスタンス化を試みました (コメントを参照)。

ヘルプ?

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

memcached - python-memcache memcached -- centos virtualbox にインストールしましたが、get/set が機能しないようです

私はパイソンを使用しています。yum install memcached に続いて easy_install python-memcached を実行しました

ヘルプ(memcache)の簡単なテスト プログラムを使用しました。適切な答えが得られなかったとき、私はいくつかの印刷ステートメントを投げました:

ここでの問題は、インストールで何をしなかったかということです。API の観点からは機能しているように見えますが、memcache 共有領域に何も配置できません。centos [~]# cat /proc/version Linux バージョン 2.6.32-358.6.2.el6.i686 (mockbuild@c6b8.bsys.dev.centos.org) (gcc バージョン 4.4.7) を実行している virtualbox vm を使用しています20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Thu May 16 18:12:13 UTC 2013

実行されているはずのデーモンはありますか? ps を実行しても、明らかな名前の付いたものは表示されません。

VMにpylibmcをインストールしようとしましたが、動作するインストールが見つからなかったため、今のところ、上記のものを最初に動作させることができるかどうかを確認します.

Python コンソール GUI から直接実行した場合、debug=1 を設定するともう少し多くの出力が得られることを発見しました

telnet の例に従ってポートに接続しようとすると、接続が拒否されます。

localhost が無効にならないように、ネットで見つけた telnet の設定手順を試してみました: vi /etc/xinetd.d/telnet service telnet { flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin /in.telnetd log_on_failure += USERID 無効 = いいえ }

次に、コマンドを実行してサービスを再起動しました。

両方のケース (iptables の開始と停止) で実行しましたが、効果はありません。だから私はアイデアがありません。PORT が許可されるようにするには、どうすればよいですか? それが問題なら?または、ポートを開く必要がある、実行する必要がある memcached サービスがありますか?

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

python - python-memcached は「JAC_SF」を取得または設定できません

たくさんのことをチェックした後、いくつかのキーについては、python-memcachedが取得できないか、マシンに設定できないことがわかりました(Mac OSX 10.9、自作memcache 1.4.15、pipがインストールされたpython-memcached 1.53) . 私の最初の問題は、何が起こっているのかについて明確な考えを持っていなかった暗闇の中でのショットでしたが、さらに掘り下げた後、私は今間違いなく今です.

それはすべて def _get_server(self, key) にかかっています。

デバッグ出力行を 2 行追加すると、

キー「NFL::CAR_TB」を取得または設定しようとしています。

結果、私のマシンで、

_get_server を変更すると

その後、すべてがはるかにうまく機能し、

Python プログラムで複数のキーを設定しようとすると、非常に一貫性のない結果が得られました。 ret = mc_cl.set_multi(mapping=mapping, time=TWO_HOURS) getret = mc_cl.get_multi(mapping.keys()) if len(mapping) != len(getret): print 'not set\n\t{}'. format('\n\t'.join([str((k, mapping[k])) for k in [a for a in mapping.keys() if a not in getret.keys()]])) および生のmemcache出力を分析した後、すべてのキーが設定されているわけではなく、その後すべてのキーが要求されているわけではないようです. Mac OSX 10.9 で、homebrew と pip ですべての作業が完了し、最新の状態になっています。以下の Memcache の出力とそれを読み取ると、228 個の項目があったのに対し、101 個のキーのみが書き込みと読み取りが試みられたことが示されています。import re gamesSet = [] gamesGet = [] with open('memout.log') as f: for line in f.read().split('\n'): match = re.match('^21 OK 22 OK 21 保存しました
0 投票する
1 に答える
210 参照

memcached - memcache から削除されたキーを見つける方法は?

どのキーが memcache から削除されているかを知ることができる組み込みの方法/またはハックはありますか?

memcache に挿入される可能性のあるすべてのキーをポーリングするソリューションが 1 つあります (例: get multi) が、これは非効率的であり、多数のキーに対しては実装できません。

この機能は本番環境で実行する必要はありませんが、一部のベンチマークおよび最適化の実行中に実行する必要があります。

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

python-3.x - Werkzeug-0.9.4 と python3_memcached-1.51 は Python 3.4 では動作しません

werkzeug.contrib.cache.MemcachedCacheget\set データを取得しようとすると、python3_memcached-1.51 を使用しています。次のエラーが表示さますmemcache.MemcachedKeyTypeError: Key must be str()'s

鍵のタイプはbytesではなくstrです。ということで詳しく調べてみました。

内部werkzeug.contrib.cache.MemcachedCacheキーはbytes、次のように (Python3 で) にエンコードされます。

https://github.com/mitsuhiko/werkzeug/blob/master/werkzeug/contrib/cache.py#L342

これに対する正しい修正は何ですか? モンキーパッチ?

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

python - 複数の外部キーを持つ Django オブジェクトがある場合、memcached キーに名前を付ける/配置する方法は?

データベースのキャッシュを行わない既存の Django アプリがあります。私は memcached を実装して、パフォーマンスを向上させ、コストのかかるデータベース ヒットの量を減らすことに取り組んでいます。

私が使用する戦略は次のとおりです。XXX.objects.get() または XXX.objects.filter() を使用して DB にクエリを実行するたびに、最初にキャッシュをチェックして、この同じクエリの結果が既に存在するかどうかを確認します。 memcached で。もしそうなら、私はそれを使うだけです。そうでない場合は、DB にクエリを実行し、特定の名前のキーを使用して memcached に入れます。このクエリの結果を更新するたびに、Django の post_save() シグナルを使用してそのキャッシュ キーを無効にします。かなり単純に聞こえますよね?

さて、これが整然と機能するように、キャッシュキーにどのように名前を付けるかについて苦労しています。問題は、他の 2 つの Django モデルへの外部キーを持つ Django モデル オブジェクトがあることです。

ここに私のモデルがあります:

myObjectC の post_save handler() で、キャッシュ キー SOME_NAME1_X と SOME_NAME2_X が古くなったため無効にする必要があります。右?それが私がする必要があることだと思います。

しかし、各クラスのインスタンスごとにそのようなキーが多数ある場合はどうなるでしょうか? 結局、インスタンスごとに XXX.objects.get() または XXX.objects.filter() 呼び出しごとに、そのようなキーが 1 つあります。それらをすべて手動で無効にする必要がありますか? 各キャッシュ エントリを自分で覚えなくても、これらのキーに名前を付けて一度に無効にする体系的な方法はありませんか?

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

python - DjangoのMemcachedのセッション、SESSION_COOKIE_AGE = 0を設定すると、キャッシュの有効期限が常に300秒になります

そのような私のDjango Settings.py:

セッションを memcached に保存します。しかし、キャッシュの有効期限は常に 300 秒です!!

ジャンゴのドキュメントとして、彼らは SESSION_COOKIE_AGE = 0 はタイムアウトしないことを意味すると言いますが、キャッシュタイムアウトには使用されませんか?

それで、ブラウザを閉じるまでセッションキャッシュがタイムアウトしないようにしたいですか?

セッションをmemcachedに保存するため、SESSION_EXPIRE_AT_BROWSER_CLOSEのみを設定するように言わないでください。キャッシュにも有効期限があります。キャッシュが期限切れにならないようにしたいです。

ありがとう。

0 投票する
3 に答える
1036 参照

python - 「str」は Memcached とのバッファ インターフェイスをサポートしていません

私はpython3.4でdjango 1.7を使用しています。私は最近 Memcached をインストールし、サイト キャッシュごとに python-memcached で使用しようとしています。しかし、settings.py でデフォルトのキャッシュ バックエンドを定義すると、アプリケーションが動作しなくなり、次のエラーがスローされます。

インストールされたミドルウェアとトレースバックは次のとおりです。

問題点と解決策を教えてください。python-memcache バインディングは python3.4 では機能しませんか