Create MC2 Redis Cache
Features
MC2 works with two types of Redis distributed objects: string and map collection only.
Each cache entry in MC2 is bound to a separate cache and key in that cache, so to get/put a value to cache, specify cache name and key.
In Redis however, each object is bound to the name that is used as a key.Â
Map
Redis supports many objects such as object, map, set, list, or queue. Therefore, you can use a Java map object as a value in Redis.
As a result, the MC2 cache name is bound to the Redis key, and the MC2 key is bound to the Map object key.
To get a value from the Redis cache in MC2 rules you can use the GETCACHE element.
For example, to get the value for key=mc2key from a cache with the name mc2cachetest, use the following GETCACHE element:
<GETCACHE CACHETYPE="'rediscache'" CACHENAME="'mc2cachetest'" KEY="'mc2key'" RESULTVAR="outVar" />
The extracted value is in the outVar variable.
To put a value into the Redis cache in MC2 rules, use the PUTCACHE element.
For example, to put the value of variable inVar  to a cache with the name mc2cachetest using key=mc2key, use the following PUTCACHE element:
<PUTCACHE CACHETYPE="'rediscache'" CACHENAME="'mc2cachetest'" KEY="'mc2key'" VALUEEXPR=":inVar:"/>
Also It is possible to put/get a few variables at once:
<PUTCACHE CACHETYPE="'rediscache'" CACHENAME="'mc2cachetest'" KEY="'mc2varskey'" VARIABLESEXPR="'inVar1,inVar2,inVar3'" />
<GETCACHE CACHETYPE="'rediscache'" CACHENAME="'mc2cachetest'" KEY="'mc2varskey'" />
The variables are created automatically during getting from the cache.
String
For a simple object such as a String there is no key in Redis.
To map an MC2 cache name and key into the Redis key, use a name and key concatenation, with colon as a separator, as a RedisKey.
For example, to put a String value into a cache with the name stringcache, use the key stringkey, which is bound to the Redis key stringcache:stringkey.
To deal with a string cache value, you can also use PUTCACHE and GETCACHE elements.
For example, for the string value described above, the elements are:
<PUTCACHE CACHETYPE="'rediscache'" CACHENAME="'stringcache'" KEY="'stringkey'" OPTIONS="'type=string'" VALUEEXPR=":inVar:"/>
<GETCACHE CACHETYPE="'rediscache'" CACHENAME="'stringcache'" KEY="'stringkey'" OPTIONS="'type=string'" RESULTVAR="outVar"/>
Moreover, the MC2 string object supports eviction. Redis allows you to define time to live for each Redis Key.Â
To define time to live, use the timetolive option in the PUTCACHE element. The time is defined in seconds.
For example, to define time to live in the previous example as 120 seconds, use the following element:
<PUTCACHE CACHETYPE="'rediscache'" CACHENAME="'stringcache'" KEY="'stringkey'" OPTIONS="'type=string,timetolive=120'" VALUEEXPR=":inVar:"/>