如何使用Memcached配置Spring Boot

时间:2017-06-12 19:43:43

标签: java caching spring-boot memcached

我是Memcached的新手。我需要使用Memcached配置我的spring启动应用程序。

我对这个主题进行了很多研究,但我找不到同样的文档。 默认情况下,Spring引导使用Concurrent HashMap进行缓存,但如何配置Memcached。

我有这个GitHub网址,但我不确定这是否正确,如果是这样,我该如何使用相同的网址。

https://github.com/sixhours-team/memcached-spring-boot

https://www.javacodegeeks.com/2013/06/simple-spring-memcached-spring-caching-abstraction-and-memcached.html

更新

我现在在我的项目https://github.com/bmatthews68/memcached-spring-boot-starter中使用了这个。

喜欢这个

@Override @Cacheable(value = "defaultCache")
    public String customMethof() throws InterruptedException {
        return "Testing";
    }

但是当我做一个telnet的get defaultCache我什么也得不到请帮助

3 个答案:

答案 0 :(得分:4)

将此添加到Gradle Dependencies

compile group: 'net.spy', name: 'spymemcached', version: '2.12.3'
compile('com.btmatthews.springboot:memcached-spring-boot-starter:1.0.0')

在你的主要Spring启动应用程序的顶部,@SpringBootApplication这个注释放在这个

@EnableMemcached

然后在您的组件中使用以下

@Autowired
private MemcachedClient memcachedClient;

memcachedClient.get("...")

答案 1 :(得分:4)

我是https://github.com/sixhours-team/memcached-spring-boot的作者之一。 该库将在Spring Boot应用程序中自动配置Memcached。您可以像使用Spring Cache一样启用它,即在配置类中添加@EnableCaching注释就足够了,例如。

@Configuration
@EnableCaching
public class CacheConfiguration {
}

application.yml中的配置可以简单如下:

memcached.cache:
   servers: example1.com:11211
   mode: static
   expiration: 86400

目前,该库还没有发布(第一个版本应该在大约一周内发布)。您可以找到更多信息here或查看演示Spring Boot应用程序here

还有一件事,为了支持缓存驱逐,该库的前缀为memcached:spring-boot:defaultCache:[radnom_number],因此在您的情况下,密钥将类似于例如

memcached:spring-boot:books:defaultCache:283:SimpleKey[]

其中 283 是分配给缓存密钥的随机数(正确缓存驱逐所需)。

答案 2 :(得分:0)

您展示的第一个GitHub项目是一个很好的解决方案。它也是一个spymemcached的fork,它是Memcached的主要客户端库之一。

请参阅以下官方文档。 http://cloud.spring.io/spring-cloud-aws/spring-cloud-aws.html#_caching

您也可以查看以下内容并转到“入门”页面。

https://github.com/killme2008/xmemcached