使用memcached的Spring缓存

Ilopezluna

我正在使用https://github.com/AKQABER/simple-spring-memcached将memcached集成为spring的缓存实现。

但是我没有成功:P

我正在使用spring 4和spring-data-jpa

public interface FooRepository extends JpaRepository<Foo, Long> {

@Cacheable(value = "defaultCache", key = "lala")
    Foo findByNameAndDescription(String name, String description);
} 

我将密钥硬编码用于测试目的。没什么特别的,请使用名为“ defaultCache”的缓存。memcached的配置为:

@Configuration
@EnableAspectJAutoProxy
public class CacheConfiguration
{

@Bean
public CacheManager cacheManager()
{
    MemcacheClientFactoryImpl cacheClientFactory = new MemcacheClientFactoryImpl();
    AddressProvider addressProvider = new DefaultAddressProvider("127.0.0.1:11211");
    com.google.code.ssm.providers.CacheConfiguration cacheConfiguration = new com.google.code.ssm.providers.CacheConfiguration();
    cacheConfiguration.setConsistentHashing(true); //TODO check this

    CacheFactory cacheFactory = new CacheFactory();
    cacheFactory.setCacheName           ( "defaultCache"        );
    cacheFactory.setCacheClientFactory  ( cacheClientFactory    );
    cacheFactory.setAddressProvider     ( addressProvider       );
    cacheFactory.setConfiguration       ( cacheConfiguration    );

    Cache object = null;
    try {
        object = cacheFactory.getObject();
    } catch (Exception e) {
        e.printStackTrace();
    }

    SSMCache ssmCache = new SSMCache(object, 10000, true); //TODO be very carefully here, third param allow remove all entries!!

    ArrayList<SSMCache> ssmCaches = new ArrayList<SSMCache>();
    ssmCaches.add(0, ssmCache);

    SSMCacheManager ssmCacheManager = new SSMCacheManager();
    ssmCacheManager.setCaches(ssmCaches);


    return ssmCacheManager;
}
}

我可以使用带有代码的简单主类对其进行测试:

CacheManager cacheManager = context.getBean(CacheManager.class);
    FooRepository repository = context.getBean(FooRepository.class);

    Cache defaultCache = cacheManager.getCache("defaultCache");
    defaultCache.clear();
    Foo byNameAndDescription = repository.findByNameAndDescription(DEFAULT_NAME,    DEFAULT_DESCRIPTION);
    Object obj = defaultCache.get("lala");

而且obj始终为null。但是,如果我直接使用defaultCache对象,则可以毫无问题地将内容放入缓存或从缓存中获取项目。任何的想法?

拉格诺

您是否在应用程序中启用了Spring Cache?如果没有@EnableCaching,请在配置Bean上使用。

如果这样做没有帮助,请检查,如果您使用org.springframework.cache.support.SimpleCacheManager代替,缓存是否可以正常工作SSMCacheManager如果不是这样,那么Spring Cache配置仍然存在问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spring Memcached注释未缓存

来自分类Dev

使用Memcached缓存学说结果

来自分类Dev

使用memcached进行分布式缓存

来自分类Dev

使用Spring Boot进行Memcached

来自分类Dev

当Hibernate已经存在并使用缓存时使用memcached

来自分类Dev

当Hibernate已经存在并使用缓存时使用memcached

来自分类Dev

使用Memcached和python-memcache进行缓存

来自分类Dev

使用Redis的Spring缓存:NullPointerException

来自分类Dev

使用和配置Zend会话和Zend缓存Memcached-Zend Framework 2.3

来自分类Dev

在memcached中使用清漆和缓存内容有什么区别?

来自分类Dev

Spring @Transactional是否使用任何Hibernate缓存?

来自分类Dev

使用Spring / EHCache加载时刷新缓存

来自分类Dev

Spring Boot,使用EhCache进行缓存

来自分类Dev

使用Prometheus监视Spring Boot缓存指标

来自分类Dev

使用Spring / EHCache加载时刷新缓存

来自分类Dev

Spring @Transactional是否使用任何Hibernate缓存?

来自分类Dev

如何使用 Spring Data Geode 缓存 PageImpl?

来自分类Dev

为什么:memory_store的缓存速度比:dalli_store的memcached快?我应该坚持使用:memory_store吗?

来自分类Dev

使用带有Memcached驱动程序的PhpFastCache将标签添加到缓存条目需要很长时间

来自分类Dev

Spring缓存:逐出多个缓存

来自分类Dev

Laravel不使用memcached

来自分类Dev

在XAMPP上使用memcached

来自分类Dev

使用自定义缓存管理器的Spring缓存抽象

来自分类Dev

使用Redis作为Spring缓存管理器以缓存自定义Java对象

来自分类Dev

使用Spring Boot处理Redis缓存可用性

来自分类Dev

在一个Service Bean中使用Spring多重缓存

来自分类Dev

涉及逐出时,Spring的缓存注释是否可以安全使用?

来自分类Dev

使用Spring KeyGenerator无法生成唯一的缓存密钥

来自分类Dev

如何使用Java Spring从缓存中删除特定键

Related 相关文章

  1. 1

    Spring Memcached注释未缓存

  2. 2

    使用Memcached缓存学说结果

  3. 3

    使用memcached进行分布式缓存

  4. 4

    使用Spring Boot进行Memcached

  5. 5

    当Hibernate已经存在并使用缓存时使用memcached

  6. 6

    当Hibernate已经存在并使用缓存时使用memcached

  7. 7

    使用Memcached和python-memcache进行缓存

  8. 8

    使用Redis的Spring缓存:NullPointerException

  9. 9

    使用和配置Zend会话和Zend缓存Memcached-Zend Framework 2.3

  10. 10

    在memcached中使用清漆和缓存内容有什么区别?

  11. 11

    Spring @Transactional是否使用任何Hibernate缓存?

  12. 12

    使用Spring / EHCache加载时刷新缓存

  13. 13

    Spring Boot,使用EhCache进行缓存

  14. 14

    使用Prometheus监视Spring Boot缓存指标

  15. 15

    使用Spring / EHCache加载时刷新缓存

  16. 16

    Spring @Transactional是否使用任何Hibernate缓存?

  17. 17

    如何使用 Spring Data Geode 缓存 PageImpl?

  18. 18

    为什么:memory_store的缓存速度比:dalli_store的memcached快?我应该坚持使用:memory_store吗?

  19. 19

    使用带有Memcached驱动程序的PhpFastCache将标签添加到缓存条目需要很长时间

  20. 20

    Spring缓存:逐出多个缓存

  21. 21

    Laravel不使用memcached

  22. 22

    在XAMPP上使用memcached

  23. 23

    使用自定义缓存管理器的Spring缓存抽象

  24. 24

    使用Redis作为Spring缓存管理器以缓存自定义Java对象

  25. 25

    使用Spring Boot处理Redis缓存可用性

  26. 26

    在一个Service Bean中使用Spring多重缓存

  27. 27

    涉及逐出时,Spring的缓存注释是否可以安全使用?

  28. 28

    使用Spring KeyGenerator无法生成唯一的缓存密钥

  29. 29

    如何使用Java Spring从缓存中删除特定键

热门标签

归档