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

网站建设最基础是什么搜索引擎优化需要多少钱

网站建设最基础是什么,搜索引擎优化需要多少钱,海南网站建设小强,网站备案网站建设方案书本文主要介绍 redis 缓存在线上的使用场景 由于业务的特殊性,在生产库用户表中,大概有 50 多万的测试用户,在真实业务计算中,要把测试用户给筛选掉,所以在计算前,需要把测试用户加载到 redis 缓存中&#x…

本文主要介绍 redis 缓存在线上的使用场景

由于业务的特殊性,在生产库用户表中,大概有 50 多万的测试用户,在真实业务计算中,要把测试用户给筛选掉,所以在计算前,需要把测试用户加载到 redis 缓存中,并构建本地缓存。

查询数据库

为了提高查询效率,先得到最大主键ID,以每次查询5000 条提前构建好批次范围,并采用并行查询的方式。

     long maxUserId = odsUserDAO.getMaxUserId(); // 查询最大 id// 构建批次范围列表List<LinkedList<Long>> pagingIntervalList = new ArrayList<>();//初始化分页列表for(long leftBoundary = 0; leftBoundary < maxUserId; leftBoundary += 5000){LinkedList<Long> pagingInterval = new LinkedList<>();long rightBoundary = leftBoundary + 5000;if(rightBoundary >= maxUserId){pagingInterval.add(leftBoundary);pagingInterval.add(maxUserId + 1);pagingIntervalList.add(pagingInterval);break;}pagingInterval.add(leftBoundary);pagingInterval.add(rightBoundary);pagingIntervalList.add(pagingInterval);}//并行加载测试学生Set<Long> testUserIdSet = pagingIntervalList.parallelStream().map(pagingInterval -> odsUserDAO.incrementGetTestUser(pagingInterval.peekFirst(), pagingInterval.peekLast())).flatMap(List::stream).map(o -> o.getId()).collect(Collectors.toSet());

分页查询 sql

<select id="incrementGetTestUser" resultMap="BaseResultMap">select  <include refid="Base_Column_List"/>from userwhere (account_type ='TEST'or name like '%test%'or name like '%TEST%'or name like '%测试%'or status <![CDATA[ <> ]]> 'NORMAL')and id between #{pagingStartIdx} and #{pagingEndIdx}and status = 1</select>

写回缓存

private static volatile Set<Long> testUserLocalCache = null; //全局变量testUserLocalCache = testUserIdSet; //本地缓存
String[] testUserIdArray = testUserIdSet.parallelStream().map(String::valueOf).toArray(String[]::new);
redisCluster.sadd("test_user_data", testUserIdArray); //redis缓存

查询缓存

在处理业务时,如果该用户是测试数据,则跳过。

private static volatile Set<Long> testUserLocalCache = null; //全局变量public boolean isTestUser(Long userId){if (testUserLocalCache == null || testUserLocalCache.isEmpty()){boolean isRemoteTestUserCacheExists = redisCluster.exists("test_user_data");if(!isRemoteTestUserCacheExists){throw new RuntimeException("failed to hit test user remote cache, cause test user never preload");}// 如果本地缓存为空,则构建synchronized(this){if (testUserLocalCache == null || testUserLocalCache.isEmpty()){Set<String> testUserSet = redisCluster.sscanAll("test_user_data"); //采用 sscan 游标方式查询testUserLocalCache = testUserSet.parallelStream().map(Long::valueOf).collect(Collectors.toSet());}}}//从本地缓存查询数据return testUserLocalCache.contains(userId);}

总结

由于业务性质及生产机器配置够高,缓存不设置过期时间,只是在下次计算前,先清除缓存即可,再构建本次新的缓存。

http://www.ds6.com.cn/news/6078.html

相关文章:

  • 石家庄网站备案百度竞价推广点击器
  • 网站建设免费的服务器seo黑帽是什么
  • 网站多数关键词免费推广app
  • wordpress 高亮作者留言徐州seo排名公司
  • https下安装wordpress重庆做网络优化公司电话
  • 如何利用网站做demo域名解析ip地址查询
  • 网站建设违约seo专员
  • 医院网站建设的社会价值网络营销知名企业
  • 网站开发设计需要什么证书站长统计官方网站
  • 重庆忠县网站建设公司淘宝标题优化网站
  • dw网站建设的常用技术国际新闻网
  • dede5.7微电影网站模板青岛百度竞价
  • 利用淘宝做网站卖货到国外设计公司网站设计
  • 哈尔滨网站设计模板h5页面制作平台
  • 桂电做网站的毕设容易过嘛推广普通话的宣传语
  • 广东省住房城乡建设厅网站磁力下载
  • 南宁网站设计多少钱b2b免费发布平台
  • Wordpress仿appstore太原网站制作优化seo公司
  • 网站维护协议网络优化有前途吗
  • 建筑公司怎么注册seo关键词优化培训
  • 合肥市建设通网站百度引擎搜索网址
  • python自学网seo海外推广
  • 企业软件定制开发包括seo专业课程
  • 网站设计 seo网络营销策划步骤
  • 招聘网站开发流程查域名网站
  • 设计网站首页步骤站长工具网站备案查询
  • 给县里做网站在什么网站可以免费
  • 珠海精品网站建设seo工作流程图
  • 广东手机网站建设费用长沙网站推广公司排名
  • 在哪个网站可以自助建站免费广州seo