0

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

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

[~/test]$  cat m2.py
import memcache
mc = memcache.Client(['127.0.0.1:11211'], debug=0)

x = mc.set("some_key", "Some value")
print 'Just set a key and value into the cache (suposedly)'

value = mc.get("some_key")
print 'Just retrieved that value from the cache using the key'

print 'X %s' % x

print 'Value %s' % value    

[~/test]$  python m2.py
Just set a key and value into the cache (suposedly)
Just retrieved that value from the cache using the key
X 0
Value None
[~/test]$ 

ここでの問題は、インストールで何をしなかったかということです。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 を設定するともう少し多くの出力が得られることを発見しました

>>> mc = memcache.Client(['127.0.0.1:11211'], debug=1)
>>> mc.stats
{}
>>> mc.set('test','value')
MemCached: MemCache: inet:127.0.0.1:11211: connect: Connection     refused.  Marking dead.
0
>>> mc.get('test')
MemCached: MemCache: inet:127.0.0.1:11211: connect: Connection refused.  Marking dead.

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

[root@~]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
[root@~]# 

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 無効 = いいえ }

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

service iptables stop
service xinetd stop
service iptables start
service xinetd start
service iptables stop

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

4

1 に答える 1

0

さて、これはそれを機能させるために必要なことです:(一連の手動ステップ)

1) su -
   cd /var/run
   mkdir memcached # this was missing

memcached ファイルで、「-l 127.0.0.1」を OPTIONS ステートメントに追加しました。それは明らかにリッスンオプションです。手順 2 と 3 でこれを行います。実行時に実際にどのファイルが使用されるかはわかりません。

2) cd /etc/sysconfig
   cp memcached memcached.old
   vi memcached

3) cd /etc/init.d
   cp memcached memcached.old
   vi memcached

4) いくつかのコマンドを試して、サーバーが起動するかどうかを確認します

/etc/init.d/memcached start
/etc/init.d/memcached status
/etc/init.d/memcached stop
/etc/init.d/memcached restart

ブラウザを開こうとしましたが、実際には何も表示されていないようだったので、このアプローチがどれほど有効かはわかりません。私はApacheなどを実行していないので、おそらく私の原因とは関係ありません。おそらく、 ?key=blah か何かを指定する必要があります。

5)  http://127.0.0.1:11211

6) これで準備完了です。以下に示すテストを実行すると、動作するはずです。少なくとも私にはそうでした。help(memcache) を実行すると、簡単なプログラムが表示されます。それを貼り付けるだけで、問題なく動作するはずです。

[~]$ python
>>> import memcache
>>> help(memcache)
于 2013-11-15T14:47:14.330 に答える