java dan php oluşturulan memcache öğeye erişmek nasıl

2 Cevap java
  1. madde json tefrika ikili değil yani okunabilir.
  2. Öğeyi almak için çalışırken ben anahtarı iyi çalışıyor ama java aynı anahtarı kullanarak öğeye erişmek zaman başarısız php, sorun alıyorum
  3. Sunucu karma aproblem olmamalı ki tek bir sunucu var
  4. I have done a wireshark analysis ve seems to be of no help except that: java ve php clients vardır looking different keys.

Ne ben bunu düzeltmek için ne yapmak gerekiyor? Şimdi ben bir php sarıcı oluşturduk ve iyi çalışıyor ama benim için uzun vadeli bir çözüm değil, herhangi bir yardım mutluluk duyacağız.

2 Cevap

Wireshark müşterilerine farklı anahtarları göndermek olduğunu gösteriyorsa, bu sorunun ne olduğunu tam olarak söylemek değil mi?

Nasıl henüz wireshark trafik Farklı bir anahtar gönderilir gösterir PHP gibi Java aynı anahtarla öğeyi erişen olabilir? Nasıl size aynı anahtarı gönderiyor biliyor musunuz? Eğer eksik Java istemci yapılandırması için çeşit var mı?

Sorun PHP java için kullanılan birinden farklıdır için varsayılan karma algoritması memcache kullanır.

Sen algoritma PHP yapılandırma seçeneği memcache.hash_function (- varsayılan crc32 görmek http://us2.php.net/manual/en/memcache.ini.php) ile kullandığı ayarlayabilirsiniz

Sen algoritması java setHashingAlg yöntemi ile kullanır ayarlayabilirsiniz:

static {
                String[] serverlist = { "cache0.server.com:12345", "cache1.server.com:12345" };

                SockIOPool pool = SockIOPool.getInstance();
                pool.setServers(serverlist);
                pool.setHashingAlg( SockIOPool.NEW_COMPAT_HASH );
                pool.initialize();      
        }

o da crc32 kullanmak yapacaktır.

(Bkz: http://www.whalin.com/memcached/javadocs/com/danga/MemCached/SockIOPool.html - bu Java'nın yerli varsayılan String.hashCode())

Onlar aynı algoritma ayarlanır ise, sorunun çözülmesi gerektiğini