zoukankan      html  css  js  c++  java
  • 57

    一)示例
    从Demo开始,先感受一把

    @Controller
    public class CacheController {
    /**
    * 执行结果缓存10秒,并添加 test_KaTeX parse error: Expected group after '_' at position 53: …he(tags = "test_̲{label},test1" , seconds = 10)
    @Mapping("/cache/")
    public Object test(int label) {
    return new Date();
    }

    /**
     * 执行后,清除 标签为 test  的缓存(不过,目前没有 test 的示签...)
     * */
    @CacheRemove(tags = "test")
    @Mapping("/cache/clear")
    public String clear() {
        return "清除成功(其实无效)-" + new Date();
    }
    
    /**
     * 执行后,清除 标签为 test_${label}  的缓存
     * */
    @CacheRemove(tags = "test_${label}")
    @Mapping("/cache/clear2")
    public String clear2(int label) {
        return "清除成功-" + new Date();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    }
    (二)定制分布式缓存
    Solon 的缓存标签,是通过CacheService接口提供支持的。定制起来也相当的方便,比如:对接Memcached…

    1. 了解 CacheService 接口:
      public interface CacheService {
      //保存
      void store(String key, Object obj, int seconds);

      //获取
      Object get(String key);

      //移除
      void remove(String key);
      }

    2. 定制基于 Memcached 缓存服务:
      public class MemCacheService implements CacheService{
      private MemcachedClient _cache = null;
      public MemCacheService(Properties props){
      //略…
      }

      @Override
      public void store(String key, Object obj, int seconds) {
      if (_cache != null) {
      _cache.set(key, seconds, obj);
      }
      }

      @Override
      public Object get(String key) {
      if (_cache != null) {
      return _cache.get(key);
      } else {
      return null;
      }
      }

      @Override
      public void remove(String key) {
      if (_cache != null) {
      _cache.delete(key);
      }
      }
      }

    3. 通过配置换掉默认的缓存服务:
      @Configuration
      public class Config {
      //此缓存,将替代默认的缓存服务
      @Bean
      public CacheService cache(@Inject("${cache}") Properties props) {
      return new MemCacheService(props);
      }
      }
      (三)注解说明
      @Cache 注解:

    属性 说明
    service() 缓存服务
    seconds() 缓存时间
    tags() 缓存标签,多个以逗号隔开(为当前缓存块添加标签,用于清除)
    @CachePut 注解:

    属性 说明
    service() 缓存服务
    seconds() 缓存时间
    tags() 缓存标签,多个以逗号隔开(为当前缓存块添加标签,用于清除)
    @CacheRemove 注解:

    属性 说明
    service() 缓存服务
    tags() 清除缓存标签,多个以逗号隔开

  • 相关阅读:
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark RDD(Resilient Distributed Datasets)论文
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    【机器学习实战】第10章 K-Means(K-均值)聚类算法
    [译]flexbox全揭秘
  • 原文地址:https://www.cnblogs.com/gd11/p/14217388.html
Copyright © 2011-2022 走看看