Spring Session实现无侵入性Redis缓存

在之前的小结Redis分布式实现(原生实现)中实现了原生的分布式redis缓存方案,但它的侵入性太强,对于已有的项目改造起来成本较大。今天就来通过Spring Session来实现无侵入性方案。

pom中导入需要的依赖:
   
        org.springframework.session
        spring-session-data-redis
        1.2.0.RELEASE
    

    
        org.redisson
        redisson
        2.9.0
    
web.xml中添加filter,这样当请求.do接口时httpsesion就会转化成我们需要的redissession:
   
        springSessionRepositoryFilter
        org.springframework.web.filter.DelegatingFilterProxy
    
    
        springSessionRepositoryFilter
        *.do
    
新建applicationContext-spring-session.xml用于对jedis的工厂、链接池设置(只列出基本的设置,详细需要进入代码查看):



    
        
    
    
        
        
        
        
    

    
        
    

    
        
        
        
    

最后将需要缓存的bean实现Serializable(否者redis无法写入)
开始调用接口测试:
session

这里看到通过在wen.xml文件的设置session已经被转化成redissession,并设置了创建时间等:


session

通过redis可视化工具看到需要被存储等bean已经被存入,并且还添加了expires等关联。当关联时间到期时会被清除,缓存的bean不会,它会到自己过期才清除。但由于关联过期,缓存也自然无法获取。

你可能感兴趣的:(Spring Session实现无侵入性Redis缓存)