Redis緩存圖片

緩存的數據格式是Hash哈希,其實存那種都可以,存進去都是字符串,感覺用k/v不好,如果緩存太多熱點數據定義很多k,雜亂的.
Reids依賴

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

配置主機號和redis默認端口號

spring.redis.host=192.168.150.151 
spring.redis.port=6379 

首先去redis查詢,redis沒有去數據庫查詢,查詢出來的數據保存到數據庫裏面
,第二次去查就去redis裏面查詢


    @Autowired
    RedisTemplate redisTemplate;
    
   public List<AdItem> getAdsByCid(Long id){
        List<AdItem> list2 = null;
        HashOperations hash = redisTemplate.opsForHash(); //哈希操作
        list2 = (List<AdItem>)hash.get("ads", "big_ad");
        if (list2 !=null && list2.size()>0){
            System.out.println("----------redis----------");
            return list2;
        }
        List<TbContent> list =  tbContentMapper.getAllContentByPage(id,null,null);
        System.out.println(">>>>>>>>>>>db>>>>>>>>>>>>>>");
        List<AdItem> result = new ArrayList<>(list.size());
        for (TbContent tbContent : list) {
            AdItem adItem = new AdItem(); //圖片
            adItem.setSrc(tbContent.getPic());
            adItem.setHeight(240);
            adItem.setWidth(670);
            adItem.setSrcB(tbContent.getPic2());
            adItem.setHeightB(240);
            adItem.setWidthB(550);
            adItem.setAlt(tbContent.getTitleDesc());
            adItem.setHref(tbContent.getUrl());
            result.add(adItem);
        }
        hash.put("ads", "big_ad", result);//數據庫裏面的數據put到Redis裏面
        return result;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章