CAST supports Memcached via its com.castsoftware.nosqljava extension. Details about the support provided for Java source code is discussed below.
Supported Libraries
Library | Version | Supported |
---|---|---|
spymemcached | Up to: 2.7.1 |
Supported Operations
Operations | Method Supported |
---|---|
Insert | net.spy.memcached.MemcachedClient.set net.spy.memcached.MemcachedClient.add |
Update | net.spy.memcached.MemcachedClient.incr net.spy.memcached.MemcachedClient.asyncIncr net.spy.memcached.MemcachedClient.decr net.spy.memcached.MemcachedClient.asyncDecr net.spy.memcached.MemcachedClient.replace net.spy.memcached.MemcachedClient.append net.spy.memcached.MemcachedClient.prepend net.spy.memcached.MemcachedClient.getAndLock net.spy.memcached.MemcachedClient.getAndTouch net.spy.memcached.MemcachedClient.asyncGetAndTouch net.spy.memcached.MemcachedClient.asyncGetAndLock |
Select | net.spy.memcached.MemcachedClient.get net.spy.memcached.MemcachedClient.asyncGet net.spy.memcached.MemcachedClient.getBulk net.spy.memcached.MemcachedClient.asyncGetBulk |
Delete | net.spy.memcached.MemcachedClient.delete |
Objects
Icon | Description |
---|---|
Java Memcached Connection | |
Java Memcached Data | |
Java Unknown Memcached Connection | |
Java Unknown Memcached Data |
Links
Links are created for transaction and function point needs:
Link type | Source and destination of link | Methods Supported |
---|---|---|
belongsTo | From Memcached data object to Memcached connection object | - |
useInsertLink | Between the java Method objects and Memcached data object | Insert |
useUpdateLink | Between the java Method objects and Memcached data object | Increment Decrement Append Prepend CAS asyncCAS getAndLock getAndTouch asyncGetAndTouch asyncGetAndLock |
useSelectLink | Between the java Method objects and Memcached data object | Get GetAsync getBulk asyncGetBulk CAS asyncCAS getAndLock getAndTouch asyncGetAndTouch asyncGetAndLock |
useDeleteLink | Between the java Method objects and Memcached data object | Remove |
What results can you expect?
Some example scenarios are shown below:
Memcached Connection
IP address
In the Memcached class file, when we add the server information by parsing the IP address and provide the port Number:
public class Connection { public static void main(String[] args) throws IOException { MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211)); } }
Hostname
In the Memcached class file, when we add the set of server information by parsing the server address and provide the port Number over the binary connection protocol:
public class Connection { public static void main(String[] args) throws IOException { MemcachedClient mcc1 = new MemcachedClient(new BinaryConnectionFactory(), AddrUtil.getAddresses ("server1")); } }
Unknown Connection Object
In the Memcached class file, when we pass the server information as a parameter but if passed parameter are unresolved:
public class Connection { public static void main(String[] args) throws IOException { InetSocketAddress inet2 = new InetSocketAddress(Connection1.var, 11211); MemcachedClient mcc = new MemcachedClient(inet2); } }
Insert Operation
set command
mcc.set("tp", 900, "memcached").isDone()
add command
mcc.add("data3", 900, "redis").isDone()
Select Operation
get command
mcc.get("data2")
asyncGet command
mcc.asyncGet("data2")
getBulk and asyncGetBulk command
m = mcc1.getBulk(keySet); vals = mcc1.asyncGetBulk(keySet);
Delete Operation
delete command
mcc.delete("data1").isDone()
Update Operation
replace command
mcc.replace("tp", 900, "redis").isDone()
append and prepend commands
mcc.append(900, "tp", "redis").isDone(); mcc.prepend(900, "tp", "redis").isDone();
Increment command
// incrementing the numeric value of existing key mcc.incr("tp", 2)); mcc.asyncIncr("tp", 2);
Decrement command
//decrementing the numeric value of existing key mcc.decr("tp", 1)); mcc.asyncDecr("tp", 1);
Known Limitations
- If the Data name is not resolved in the CRUD API, then the link will be created with an unknown Memcached data object