亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

javaWeb中使用Redis緩存實(shí)例解析

 更新時(shí)間:2018年01月03日 11:35:45   作者:云云云云云云嬌  
這篇文章主要介紹了javaWeb中使用Redis緩存實(shí)例解析,具有一定借鑒價(jià)值,需要的朋友可以參考下

直接進(jìn)入主題:

一:serviceImpl定義:

@Service 
  public class JedisClientSingleService implements JedisClient {
	@Autowired 
	    private JedisPool jedisPool;
	@Override 
	    public String get(String key) {
		Jedis jedis = jedisPool.getResource();
		String string = jedis.get(key);
		jedis.close();
		return string;
	}
	@Override 
	    public String set(String key, String value) {
		Jedis jedis = jedisPool.getResource();
		String string = jedis.set(key, value);
		jedis.close();
		return string;
	}
	@Override 
	    public String hget(String hkey, String key) {
		Jedis jedis = jedisPool.getResource();
		String string = jedis.hget(hkey, key);
		jedis.close();
		return string;
	}
	@Override 
	    public long hset(String hkey, String key, String value) {
		Jedis jedis = jedisPool.getResource();
		long result = jedis.hset(hkey, key, value);
		jedis.close();
		return result;
	}
	@Override 
	    public long incr(String key) {
		Jedis jedis = jedisPool.getResource();
		long result = jedis.incr(key);
		jedis.close();
		return result;
	}
	@Override 
	    public long expire(String key, int second) {
		Jedis jedis = jedisPool.getResource();
		long result = jedis.expire(key, second);
		jedis.close();
		return result;
	}
	@Override 
	    public long ttl(String key) {
		Jedis jedis = jedisPool.getResource();
		long result = jedis.ttl(key);
		jedis.close();
		return result;
	}
	@Override 
	    public long del(String key) {
		Jedis jedis = jedisPool.getResource();
		long result = jedis.del(key);
		jedis.close();
		return result;
	}
	@Override 
	    public long hdel(String hkey, String key) {
		Jedis jedis = jedisPool.getResource();
		long result = jedis.hdel(hkey, key);
		jedis.close();
		return result;
	}

二:添加緩存出(一般寫(xiě)在service是層中):

public List<RoleResource> getTreeGrid() { 
    //從緩存中獲取內(nèi)容 
    try { 
      String cachString = jedisClientSingleService.hget(ALL_RESOURCES_NO_CONDITION, hashId); 
      if(!StringUtils.isBlank(cachString)){ 
        List<RoleResource> list = JsonUtils.jsonStrToList(cachString, RoleResource.class) ; 
        return list ; 
      } 
    } catch (Exception e) { 
      e.printStackTrace(); 
    } 
     
    List<RoleResource> list =sessionFactory.openSession().selectList("cn.sys.auth.entity.ResourcesMapper.getTreeGrid"); 
    //將緩存中添加緩存 
    try { 
      //redsi只存字符串,把list轉(zhuǎn)換換成字符串 
      String cachString =JsonUtils.toJson(list) ; 
      jedisClientSingleService.hset(ALL_RESOURCES_NO_CONDITION, hashId, cachString) ; 
    } catch (Exception e) { 
      e.printStackTrace(); 
    } 
    return list; 
  } 

邏輯:先從緩存中取數(shù)據(jù),如果緩存中沒(méi)有,就去數(shù)據(jù)庫(kù)中取,然后把數(shù)據(jù)存入緩存,下次查詢時(shí)就會(huì)從緩存中取。

三:緩存的同步

問(wèn)題來(lái)了,入過(guò)你修改或者刪除了數(shù)據(jù),下次取的時(shí)候,因?yàn)榫彺嬷杏袛?shù)據(jù)便在緩存中取,這是數(shù)據(jù)庫(kù)的數(shù)據(jù)與緩存中的數(shù)據(jù)不一致,便出現(xiàn)差異,這就要緩存同步了。

其實(shí)很簡(jiǎn)單,就是在修改,刪除(如果添加也需要的話),執(zhí)行下面操作:

1:刪除緩存,處理數(shù)據(jù),把數(shù)據(jù)放如緩存

2:刪除緩存,處理數(shù)據(jù)(等查詢數(shù)據(jù)的時(shí)候會(huì)把數(shù)據(jù)放入緩存,兩種情況只是寫(xiě)緩存時(shí)間的區(qū)別)

try { 
      jedisClientSingleService.hdel(ALL_RESOURCES_NO_CONDITION, hashId); 
    } catch (Exception e) { 
      e.printStackTrace(); 
    } 

總結(jié)

以上就是本文關(guān)于javaWeb中使用Redis緩存實(shí)例解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • SpringBoot無(wú)法識(shí)別bootstrap.yml小綠葉問(wèn)題的解決辦法

    SpringBoot無(wú)法識(shí)別bootstrap.yml小綠葉問(wèn)題的解決辦法

    一般單獨(dú)使用?Spring?Boot?時(shí),bootstrap.yml?文件一般是不會(huì)生效的,也就是沒(méi)有小綠葉圖標(biāo),本文給大家介紹了SpringBoot無(wú)法識(shí)別bootstrap.yml小綠葉問(wèn)題的解決辦法,文中給出了兩種解決方案,需要的朋友可以參考下
    2024-07-07
  • MyBatis多對(duì)多關(guān)聯(lián)映射創(chuàng)建示例

    MyBatis多對(duì)多關(guān)聯(lián)映射創(chuàng)建示例

    這篇文章主要為大家介紹了MyBatis多對(duì)多關(guān)聯(lián)映射的創(chuàng)建示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 手把手教你從零設(shè)計(jì)一個(gè)java日志框架

    手把手教你從零設(shè)計(jì)一個(gè)java日志框架

    Java里的各種日志框架,相信大家都不陌生。Log4j/Log4j2/Logback/jboss logging等等,其實(shí)這些日志框架核心結(jié)構(gòu)沒(méi)什么區(qū)別,只是細(xì)節(jié)實(shí)現(xiàn)上和其性能上有所不同。本文帶你從零開(kāi)始,一步一步的設(shè)計(jì)一個(gè)日志框架
    2021-02-02
  • 帶你用Java方法輕松實(shí)現(xiàn)樹(shù)的同構(gòu)

    帶你用Java方法輕松實(shí)現(xiàn)樹(shù)的同構(gòu)

    給定兩棵樹(shù)T1和T2。如果T1可以通過(guò)若干次左右孩子互換就變成T2,則我們稱(chēng)兩棵樹(shù)是“同構(gòu)”的。例如圖1給出的兩棵樹(shù)就是同構(gòu)的,因?yàn)槲覀儼哑渲幸豢脴?shù)的結(jié)點(diǎn)A、B、G的左右孩子互換后,就得到另外一棵樹(shù)
    2021-06-06
  • Java?-jar參數(shù)詳解之掌握J(rèn)ava可執(zhí)行JAR文件的運(yùn)行技巧

    Java?-jar參數(shù)詳解之掌握J(rèn)ava可執(zhí)行JAR文件的運(yùn)行技巧

    做項(xiàng)目的時(shí)候我們肯定接觸過(guò)很多jar包,下面這篇文章主要給大家介紹了關(guān)于Java?-jar參數(shù)詳解之掌握J(rèn)ava可執(zhí)行JAR文件的運(yùn)行技巧,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Java中數(shù)據(jù)庫(kù)加密的方式分享

    Java中數(shù)據(jù)庫(kù)加密的方式分享

    在現(xiàn)今互聯(lián)網(wǎng)時(shí)代,數(shù)據(jù)安全已經(jīng)成為了我們必須要面對(duì)的重要課題,在本文中,我們將會(huì)介紹Java中常用的幾種數(shù)據(jù)庫(kù)加密方式并分析一下它們的優(yōu)缺點(diǎn),希望對(duì)大家有所幫助
    2023-05-05
  • 用intellij Idea加載eclipse的maven項(xiàng)目全流程(圖文)

    用intellij Idea加載eclipse的maven項(xiàng)目全流程(圖文)

    這篇文章主要介紹了用intellij Idea加載eclipse的maven項(xiàng)目全流程(圖文),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 基于mybatis中<include>標(biāo)簽的作用說(shuō)明

    基于mybatis中<include>標(biāo)簽的作用說(shuō)明

    這篇文章主要介紹了基于mybatis中<include>標(biāo)簽的作用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • java線程死鎖代碼示例

    java線程死鎖代碼示例

    這篇文章主要介紹了java線程死鎖代碼示例,分享了一個(gè)簡(jiǎn)單線程死鎖的例子,需要的朋友可以參考下。
    2017-11-11
  • SpringMVC實(shí)現(xiàn)Validation校驗(yàn)過(guò)程詳解

    SpringMVC實(shí)現(xiàn)Validation校驗(yàn)過(guò)程詳解

    這篇文章主要介紹了SpringMVC實(shí)現(xiàn)Validation校驗(yàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11

最新評(píng)論