In this example below we are using the following
GemFire 70
SpyMemcache JAVA API
1. Start a GemFire 70 cluster as shown below. We are ommitting the files required here but this shows what is required to ensure Memcache clients can connect to GemFire. Simple unix script below.
gfsh <<!
start locator --name=locator1 --properties-file=gemfire.properties --bind-address=localhost --port=10334 --dir=locator;
start server --name=server1 --memcached-port=11211 --memcached-protocol=BINARY --properties-file=gemfire.properties --locators=localhost[10334] --dir=server1
start server --name=server2 --memcached-port=11212 --memcached-protocol=BINARY --properties-file=gemfire.properties --locators=localhost[10334] --dir=server2
list members;
list regions;
exit;
!
2. Verify we have Memcache ports established and running
[Fri Dec 07 13:10:48 papicella@:~/gf7/gemcache ] $ ./memcache-status.sh
tcp4 0 0 10.117.85.71.11212 *.* LISTEN
tcp4 0 0 10.117.85.71.11211 *.* LISTEN
udp4 0 0 *.62112 *.*
3. Create a java client as follows which connects to the Gemcached servers we have in our cluster
package vmware.au.gemfire.demos.gemcached; import net.spy.memcached.AddrUtil; import net.spy.memcached.BinaryConnectionFactory; import net.spy.memcached.MemcachedClient; public class GemcacheClient { private MemcachedClient c = null; public GemcacheClient() throws Exception { c = new MemcachedClient(new BinaryConnectionFactory(), AddrUtil.getAddresses("10.117.85.71:11212 10.117.85.71:11212")); } public void run() { for (int i = 1; i <= 20; i++) { c.set(String.valueOf(i), 0, "Customer" + i); } System.out.println("added 20 entries \n"); String value = (String) c.get("5"); System.out.println("Value with key [5] = " + value); c.shutdown(); } /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { GemcacheClient test = new GemcacheClient(); test.run(); System.out.println("all done.."); } }
4. Run it and verify output as shown below. Ensure you alter the connect address correctly.
2012-12-07 13:25:05.577 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=/10.117.85.71:11212, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2012-12-07 13:25:05.578 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=/10.117.85.71:11212, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2012-12-07 13:25:05.582 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@52cc95d
2012-12-07 13:25:05.584 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@4393722c
added 20 entries
Value with key [5] = Customer5
2012-12-07 13:25:05.942 INFO net.spy.memcached.MemcachedConnection: Shut down memcached client
all done..
5. Now in GFSH verify we have a region called "gemcached" and it now has data.
[Fri Dec 07 13:40:27 papicella@:~/gf7/gemcache ] $ gfsh WARNING: JDK/lib/tools.jar is required for some GFSH commands. Please set JAVA_HOME to point to the JDK directory. Currently using JRE. _________________________ __ / _____/ ______/ ______/ /____/ / / / __/ /___ /_____ / _____ / / /__/ / ____/ _____/ / / / / /______/_/ /______/_/ /_/ v7.0 Monitor and Manage GemFire gfsh>connect --locator=localhost[10334]; Connecting to Locator at [host=localhost, port=10334] .. Connecting to Manager at [host=Pas-Apicellas-MacBook-Pro.local, port=1099] .. Successfully connected to: [host=Pas-Apicellas-MacBook-Pro.local, port=1099] gfsh>list regions; List of regions --------------- gemcached test gfsh>query --query="select count(*) from /gemcached"; Result : true startCount : 0 endCount : 20 Rows : 1 Result ------ 20 NEXT_STEP_NAME : END
More information can be found in the documentation below.
http://pubs.vmware.com/vfabricNoSuite/index.jsp?topic=/com.vmware.vfabric.gemfire.7.0/tools_modules/gemcached/deploying_gemcached.html
No comments:
Post a Comment