当前位置: 首页 > news >正文

找兼职工作在家做正规网站账号权重查询

找兼职工作在家做正规网站,账号权重查询,重庆建设信息,大良用户网站建设问题:当我们要添加缓存时,如果我们用了PageHelper时,PageHelper只会对查询语句有效(使用到sql的查询),那么如果我们把查询到的数据都添加到缓存时,就会无法进行分页; 此时我们选择将…

问题:当我们要添加缓存时,如果我们用了PageHelper时,PageHelper只会对查询语句有效(使用到sql的查询),那么如果我们把查询到的数据都添加到缓存时,就会无法进行分页;

此时我们选择将分页后的数据加入缓存,前端传入page和count表示查询页数和个数,我们将其拼接到查询物品key作为唯一key添加进入redis中,每次查询不同页数都会添加缓存,

但是,当我们数据进行更新时可能会导致所有添加的缓存都会与数据库不符合,所以每次更新我们都要将缓存进行删除操作,下次查询再次进行缓存~

下面我们使用PageHelper和redis做缓存分页

每次查询页码数和每页数量和对应的key拼接起来存入redis中、

下面我们使用redisClient存入redis,通过redisTemplate进行模糊扫描扫描对于key下各个页码的缓存,当内容进行更新时删除掉之前的缓存,当我们再次请求时才会去加缓存

直接看代码

👇

@Service
public class AAAAServiceImpl  implements aaaaService {
    @Autowired
    private TIntegralPrizesMapper integralPrizesMapper;
    @Resource
    private RedisTemplate<String,String> redisTemplate;
    @Autowired
    private IRedisClient redisClient;
    @Autowired
    private AAAAOrderMapper aaaaMapper;
    @Autowired
    private AAAAServiceImpl aaaaService;
    public static final String XXX_KEY="XXX_AS_";


    @Override
    public void addPrizes(AAAA aaaa) {
        aaaa.setId(UUID.randomUUID().toString().replace("-",""));
        aaaa.setCreateTime(new Date());
        aaaa.setUpdateTime(new Date());
        //  处理传入数据
        aaaaMapper.addPrizes(aaaa);

//查询以XXX_KEY+aaaa.getxx()开头的所有缓存(count表示要查询的数量,我们可以大概设置一个最大值(不要太大,不然影响性能))
        ScanOptions      options=ScanOptions.scanOptions().match(XXX_KEY+aaaa.getxx()+"*").count(100).build();
        Cursor<byte[]> cursor=redisTemplate.getConnectionFactory().getConnection().scan(options);

//循环查询数据
        while (cursor.hasNext()){

//将得到的字符组转换为String
            String key=new String(cursor.next());

//删除缓存
            redisClient.delete(key);
        }
        try {

//关闭游标
            cursor.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    @Override
    public String deleteXX(AAAADTO aaaaDTO) {
        //更新时间
        aaaaDTO.setUpdateTime(new java.util.Date());
        aaaaMapper.deleteSXPrizes(aaaaDTO);
        ScanOptions options=ScanOptions.scanOptions().match(XXX_KEY+aaaDTO.getxx()+"*").count(100).build();
        Cursor<byte[]> cursor=redisTemplate.getConnectionFactory().getConnection().scan(options);
        while (cursor.hasNext()){
            String key=new String(cursor.next());
            redisClient.delete(key);
        }
        try {
            cursor.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return msg;
    }

    @Override
    public PageInfo<XXXPrizes> selectXXX(AAADTO aaaDTO) {

        //对于每一页设置唯一的key存入redis
        String key = XXX_KEY+aaaDTO.getxx()
                +"page="+aaaDTO.getPage()
                +"count="+aaaDTO.getCount();
        //查询缓存
        String tagsStr =  redisClient.get(key);
        if (StrUtil.isNotBlank(tagsStr)) {

        //将String解析
            return JSON.parseObject(tagsStr, new TypeReference<PageInfo<XXXPrizes>>() {});
        }
        //pc进行分页 
        PageHelper.startPage(aaaDTO.getPage(),aaaDTO.getCount());
        List<TIntegralPrizes> tX = aaaMapper.selectxxx(aaaDTO);
        PageInfo<XXXPrizes> pageInfo=new PageInfo<>(tX);

        //解决缓存穿透问题()当数据库为空时,给缓存一个值,使其不会一直访问数据库

        //因为这里我们set的值为pageInfo所以不用关心这个问题
        

        //转换为json字符串
        //存入缓存
            String strList = JSON.toJSONString(pageInfo);
            redisClient.set(key, strList, 5 * ((int) (Math.random() * 4) + 1), TimeUnit.MINUTES);

        return pageInfo;
    }
}
以上就是一个缓存分页的例子,当然做缓存分页方法有很多,此方法仅供参考

http://www.khdw.cn/news/460.html

相关文章:

  • 天峻县公司网站建设seo的优化策略有哪些
  • 做网站价格 网络推广托管服务百度助手官网
  • 北京海淀区工商局网站游戏推广渠道
  • 淘宝联盟返利网站怎么做产品推广文案100字
  • 日照seo外包公司关键词优化心得
  • 个人怎么建立网站吗网站首页模板
  • 网站建设与制作总结代运营公司排行榜
  • 青州网站百度关键词优化公司哪家好
  • 装修公司网站用的织梦活动推广方式
  • 深圳网站设计公司 网络服务网站自建
  • 广东政府疫情发布会抖音seo什么意思
  • 北京网站建设的公司哪家好武汉推广系统
  • 夏县做网站泉州seo按天收费
  • 怎么用云主机做网站优化关键词规则
  • 数据库做后台网站深圳谷歌优化seo
  • 政府网站建设成效夸克搜索引擎入口
  • 秀米网站怎么做推文镇江网站
  • 只用html5可以做网站吗百度百科官网登录
  • 新加坡政府网站建设的特点爱站工具包手机版
  • 营销展示型网站模板百度网站免费优化软件下载
  • 中美贸易最新动态江苏seo哪家好
  • 网站服务器租用价格西安专业seo
  • 同性恋色做视频网站衡阳seo外包
  • 数码产品销售网站建设策划书深圳优化公司统高粱seo
  • 设计制作幻灯片母版的菜单是seo应该怎么做
  • 淮安百度网站建设杭州最好的电商培训机构
  • 胶南网站建设多少钱徐州seo外包
  • 泰州网站建设公司哪家好域名搜索
  • 天津市住房和城乡建设委员会门户网站韩国热搜榜
  • 济南城乡建设官方网站新站seo外包