Kiedy próbuję czytać String z memcached, że ustawione w python:Memcached coraz null dla String zestaw z pytona, a następnie uzyskać z Java
import memcache
MC_SERVER = "192.168.1.100"
MC_PORT = "11211"
mc = memcache.Client(['%s:%s' % (MC_SERVER, MC_PORT)], debug=0)
mc.set("test_string", "true")
print mc.get("test_string")
Java mówi mi to nie istnieje i oczywiście zwraca null gdy próbuję dostać go:
import com.danga.MemCached.*;
public class Tester {
// create a static client as most installs only need
// a single instance
protected static MemCachedClient mcc = new MemCachedClient(true, false);
// set up connection pool once at class load
static {
// server list and weights
String[] servers =
{
"192.168.1.100:11211"
};
// grab an instance of our connection pool
SockIOPool pool = SockIOPool.getInstance();
// set the servers and the weights
pool.setServers(servers);
// set some TCP settings
// disable nagle
// set the read timeout to 3 secs
// and don't set a connect timeout
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0);
// initialize the connection pool
pool.initialize();
}
// from here on down, you can call any of the client calls
public static void main(String[] args) {
//System.out.println(mcc.set("test_string", "blah!")); // everything is great is value is set by Java
System.out.println(mcc.keyExists("test_string")); // output is false when value set by python
System.out.println(mcc.get("test_string")); // output is null when value set by python
}
}
jestem zgadywania, że ma coś wspólnego z serializacji obiektu/un-serializacji w różnych językach, ale myślałem, że mogę być OK dla prostych Strings - ktoś napotkasz tego wcześniej?
Oto libs używam:
http://www.tummy.com/Community/software/python-memcached/
http://github.com/gwhalin/Memcached-Java-Client/downloads
należy zrobić pełne rejestrowanie na serwerze memcached i upewnij się, że to, co myślisz, że dzieje się rzeczywiście dzieje. –
Dobra sugestia, ale w rzeczywistości nie mam dostępu do tego konkretnego serwera memcached. Próbowałem tej drugiej biblioteki java i wygląda na to, że działa zgodnie z oczekiwaniami: http://code.google.com/p/spymemcached/ Wciąż chciałbym wiedzieć, dlaczego inne lib nie działa - po prostu ciekawy. – jckdnk111
Możliwe, że nie może zrozumieć wartości zwracanej. Możesz skonfigurować spymemcached do emulowania transkodera Whalin i sprawdzić, czy również nie. – Dustin