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

wordpress旧版本下载公众号排名优化软件

wordpress旧版本下载,公众号排名优化软件,网站建设198,做网站公司能赚钱吗问题:当我们要添加缓存时,如果我们用了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.ritt.cn/news/9339.html

相关文章:

  • 新手学做网站的书广州网站快速优化排名
  • 重庆奉节网站建设公司推荐百度识图在线网页版
  • 如何做一名合格的新闻网站编辑长沙seo网站
  • 全国做网站最好的公司有哪些磁力库
  • 建立网站功能拉新推广
  • 目前国内哪里疫情最严重搜索引擎优化是什么工作
  • 住房和城乡建设部网站行标企业网站建设目标
  • b站视频推广的方法有哪些百色seo关键词优化公司
  • 网站图片链接是怎么做的互联网产品营销策划方案
  • 武汉网站搭建网络视频营销策略有哪些
  • wordpress置顶文章顺序正规优化公司哪家好
  • 现在做个网站要多少钱网站每天做100个外链
  • 霸州做网站的网站搜索排名
  • 自己做的网站怎么传到服务器app软件开发制作公司
  • 做版权素材网站门槛google搜索首页
  • c语言开发环境怎么样做免费的百度seo
  • 小程序报价开发河北seo技术
  • 北京旧房改造装修哪家好专业seo培训
  • 网站服务器 2核宣城网站seo
  • 代办网站一键优化大师下载
  • 限制访问次数的网站建设网站公司
  • 做网站便宜的公司app开发费用一般多少钱
  • 四川省城乡住房和建设厅网站seo排名优化的网站
  • 营销网站文章去那找推广赚钱的软件排行
  • 中企动力做网站的价格百度推广登录官网
  • 什么网站可以做锦鲤活动新产品市场推广方案
  • 做天猫网站价格表手机地图app下载安装
  • 福泉网站制作我也要投放广告
  • 做阿里巴巴类似的网站吗搜狗收录提交入口网址
  • 甘肃城乡建设局安全质量网站百度账号登录入口官网