SpringBoot +Redis 自定義模板

Redis序列化對象
GenericToStringSerializer: 可以將任何對象泛化為字符串并序列化哆窿。
JacksonJsonRedisSerializer: 序列化object對象為json字符串。
Jackson2JsonRedisSerializer: 跟JacksonJsonRedisSerializer實際上是一樣的熙兔。
JdkSerializationRedisSerializer: 序列化java對象摆尝,對象必須實現(xiàn)Serializable接口良姆。
StringRedisSerializer: 簡單的字符串序列化蚁堤。

Redis配置:

@Configuration
@EnableCaching
public class RedisConfigurer extends CachingConfigurerSupport {

    /*定義緩存數(shù)據(jù) key 生成策略的bean
    包名+類名+方法名+所有參數(shù)
    */
    @Bean
    public KeyGenerator wiselyKeyGenerator(){
        return new KeyGenerator() {
            @Override
            public Object generate(Object target, Method method, Object... params) {
                StringBuilder sb = new StringBuilder();
                sb.append(target.getClass().getName());
                sb.append(method.getName());
                for (Object obj : params) {
                    sb.append(obj.toString());
                }
                return sb.toString();
            }
        };

    }

    @Bean
    public CacheManager cacheManager(@SuppressWarnings("rawtypes") RedisTemplate<?, ?> redisTemplate) {
        // 創(chuàng)建緩存管理器
        RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);
        cacheManager.setDefaultExpiration(3600 * 24);
        cacheManager.setUsePrefix(true);
        cacheManager.setCachePrefix(new DefaultRedisCachePrefix(":"));
        return cacheManager;
    }

    @Bean
    public RedisTemplate redisTemplate(JedisConnectionFactory factory) {
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(om);
        RedisTemplate template = new RedisTemplate();
        template.setConnectionFactory(factory);
        template.setKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(jackson2JsonRedisSerializer);
        template.setHashKeySerializer(jackson2JsonRedisSerializer);
        template.setHashValueSerializer(new StringRedisSerializer());
        template.afterPropertiesSet();
        return template;
    }

    @Bean
    public RedisTemplate sessionRedisTemplate(JedisConnectionFactory factory) {
        RedisTemplate<Serializable, Session> template = new RedisTemplate();
        template.setConnectionFactory(factory);
        template.setDefaultSerializer(new GenericJackson2JsonRedisSerializer());
        template.setKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(new JdkSerializationRedisSerializer());
        template.afterPropertiesSet();
        return template;
    }
}

使用模板

@Resource
private StringRedisTemplate stringRedisTemplate;
......
@Resource(name = "redisTemplate")
private HashOperations<String, Integer, Serializable> hashOperations;
......
@Resource(name = "sessionRedisTemplate")
private ValueOperations<Serializable, Session> valueOperations;

Spring 緩存注解*@Cacheable的使用

@Cacheable(value = "domainHome", keyGenerator = "wiselyKeyGenerator", unless = "#result.empty")
public List<AuthorityUsers> getDomains(String serverName) {
    ......
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嫩实,一起剝皮案震驚了整個濱河市寇钉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌舶赔,老刑警劉巖扫倡,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異竟纳,居然都是意外死亡撵溃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門锥累,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缘挑,“玉大人,你說我怎么就攤上這事桶略∮锾裕” “怎么了诲宇?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長惶翻。 經(jīng)常有香客問我姑蓝,道長,這世上最難降的妖魔是什么吕粗? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任纺荧,我火速辦了婚禮,結(jié)果婚禮上颅筋,老公的妹妹穿的比我還像新娘宙暇。我一直安慰自己,他們只是感情好议泵,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布占贫。 她就那樣靜靜地躺著,像睡著了一般先口。 火紅的嫁衣襯著肌膚如雪靶剑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天池充,我揣著相機與錄音桩引,去河邊找鬼。 笑死收夸,一個胖子當著我的面吹牛坑匠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播卧惜,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼厘灼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了咽瓷?” 一聲冷哼從身側(cè)響起设凹,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茅姜,沒想到半個月后闪朱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡钻洒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年奋姿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片素标。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡称诗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出头遭,到底是詐尸還是另有隱情寓免,我是刑警寧澤癣诱,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站袜香,受9級特大地震影響撕予,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜困鸥,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一嗅蔬、第九天 我趴在偏房一處隱蔽的房頂上張望剑按。 院中可真熱鬧疾就,春花似錦、人聲如沸艺蝴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猜敢。三九已至姑荷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缩擂,已是汗流浹背鼠冕。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留胯盯,地道東北人懈费。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像博脑,于是被迫代替她去往敵國和親憎乙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理叉趣,服務(wù)發(fā)現(xiàn)泞边,斷路器,智...
    卡卡羅2017閱讀 134,601評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,748評論 6 342
  • 人生總是百轉(zhuǎn)千回疗杉,在一段特殊的旅程中阵谚,轉(zhuǎn)角遇到愛。 感謝上帝奇妙的預(yù)備烟具!因為在微信群里椭蹄,發(fā)現(xiàn)一條有關(guān)腫...
    靜如初夏閱讀 295評論 0 2
  • 七絕·幽蘭 群芳空谷傲幽蘭, 沐雨凌風戰(zhàn)雪酣净赴。 不羨花開殷富地绳矩, 蜂蝶自會戀香還。
    任爾風云我自逍閱讀 633評論 0 3