目录


mac-cache - 示例

点击下载

获取Jedis的引用

  Cache接口提供的方法较少,但是Jedis的API非常丰富,可以通过以下途径获取Jedis的引用。 Cache cache = (Cache) ctx.getBean("redisCache"); // RedisClient client = (RedisClient) ctx.getBean("redisClient"); RedisCache rc = (RedisCache) cache; RedisClient client = rc.getRedisClient(); // Jedis jedis = client.getJedisByName("userDb"); Jedis jedis = client.getJedisByGroup("user", k);

复合式缓存(JVMM + Redis)

  复合式缓存(JVMM + Redis),
  SimpleJvmmRedi类会在初始时从cache2装载loadMap属性中所配置的数据组到cache <bean id="jvmmCache" class="com.boarsoft.cache.jvmm.JvmmCacheImpl"> </bean> <bean id="comboCache" class="com.boarsoft.cache.redis.SimpleJvmmRedis"> <!-- <property name="required" value="true" /> --> <property name="cache1" ref="jvmmCache" /> <property name="cache2" ref="redisCache" /> <!-- loadMap用于配置初始化时,要从cache2装哪些db的哪些group到cache1 --> <!-- *表示加载全部,空表示都不加载,多个group之间用逗号分隔,未来会增加正则表达式的支持 --> <property name="loadMap"> <map> <entry key="db0" value="*" /> <entry key="db1" value="ctrl" /> <entry key="token" value="*" /> </map> </property> </bean>   读写复合式缓存
// 手动将loadMap中配置数据组从cache2装载到cache1 cc.load(); String v2 = (String) cc.get("conf", "k2"); log.info("conf.k2={}", v2); // 直接将键值对写入cache2的conf组 cc.put2("conf", "k3", "v3"); // 尝试直接读取刚才放入的值 log.info("conf.k3={}", (String) cc.get2("conf", "k3")); // 尝试从cache1读取刚才放入到cache2的值 log.info("conf.k3={}", (String) cc.get("conf", "k3")); cc.clearAll2();

map形式的批量存取

  可以将对象以hash map形式存入REDIS或取出 <bean id="redisCache" class="com.boarsoft.cache.redis.SimpleRedisCacheImpl"> <property name="redisClient" ref="redisClient" /> <!-- 指定哪些对象类型使用hash map形式(hmap)存取redis --> <property name="types"> <set> <value>com.boarsoft.soagov.config.SimpleSvcCtrl</value> </set> </property> </bean>