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

网站导航是怎么做的收录查询站长工具

网站导航是怎么做的,收录查询站长工具,wordpress国产主题推荐,知名网站网页设计特色​ 痛点:类似今日头条,抖音这样的用户访问级别都是亿级别,请问如何处理? ​ 一句话 存的进取得快多维度,真正有价值的是统计… 大数据统计 聚合统计: ​ 统计多个集合元素的聚合结果,就是前…

在这里插入图片描述
痛点:类似今日头条,抖音这样的用户访问级别都是亿级别,请问如何处理?

​ 一句话 存的进+取得快+多维度,真正有价值的是统计…

大数据统计

聚合统计:

​ 统计多个集合元素的聚合结果,就是前面讲解过的交差并等集合统计。可以用Set实现

在这里插入图片描述

排序统计:

​ 抖音短视频最新评论留言的场景,设计一个展现列表。可以用Zset实现

在这里插入图片描述

二值统计

​ 集合的取值就只有0和1两种。比如钉钉打卡上班,我们只用记录有签到和没签到。可以使用bitmap实现

基数统计

​ hyperloglog:指统计一个集合中不重复的元素个数

基本术语:
  • UV(Unique View):多少个用户点击,独立访客,理解为客户端ip

  • PV(Page View):页面浏览量(不用去重)

  • DAU((Daily Active User):日活跃用户量(登陆或使用了某个产品的用户数)

  • MAU(Monthly Active User):月活跃用户量

  • 基数:是一种数据集,去重后的真实个数

需求:

很多计数类场景,比如每日注册IP数、每日访问IP数、页面实时访问数PV、访问用户数UV等。因为主要的目标高效、巨量地进行计数,所以对存储的数据的内容并不太关心。
也就是说它只能用于统计巨量数量,不太涉及具体的统计对象的内容和精准性。

  • 统计单日一个页面的访问量(PV),单次访问就算一次。
  • 统计单日一个页面的用户访问量(UV),即按照用户维度计算,单个用户一天内多次访问也只算一次。多个key的合并统计,某个门户网站的所有模块的PV聚合统计就是整个网站的总PV。
hyperloglog基本命令:
命令作用
pfadd key element…将所有元素添加到key中
pfcount key统计key的估算值
pgmerge new_key key1 key2…合并key至新key
原理:

对于亿级数据 bitmap去重:

在这里插入图片描述
概率算法:通过牺牲准确率来换取空间,对于不要求绝对准确率的场景下可以使用,因为概率算法不直接存储数据本身,通过一定的概率统计方法预估基数值,同时保证误差在一定范围内,由于又不储存数据故此可以大大节约内存

HyperLogLog就是一种概率算法的实现,误差仅仅只是0.81%左右

在这里插入图片描述Redis中Hyperloglog前14位进行分桶,后50位进行获取Kmax
在这里插入图片描述
3.1 将数据转化为bit串
通过Hash函数,将数据转为64位的比特串,例如输入5,便转为:101。为什么要这样转化呢?

是因为要和抛硬币对应上,比特串中,0 代表了反面,1 代表了正面,如果一个数据最终被转化了 10010000,那么从右往左,从低位往高位看,我们可以认为,首次出现 1 的时候,就是正面。

那么基于上面的估算结论,我们可以通过多次抛硬币实验的最大抛到正面的次数来预估总共进行了多少次实验,同样也就可以根据存入数据中,转化后的出现了 1 的最大的位置 Kmax 来估算存入了多少数据。

3.2 分桶
分桶就是分多少轮。在抛硬币中我们可以将三次实验分为一组,用这一组的Kmax求平均值当作一次的Kmax,这样可以减少误差。

抽象到计算机存储中去,就是存储的是一个以单位是比特(bit),长度为 L 的大数组 S ,将 S 平均分为 m 组,注意这个 m 组,就是对应多少轮,然后每组所占有的比特个数是平均的,设为 P。容易得出下面的关系:

L = S.length
L = m * p
以 K 为单位,S 占用的内存 = L / 8 / 1024

为什么Hyperloglog大小为12K?

  1. 前14位用于分桶,也就是需要2^14 = 16384个桶(016383,也就是14位全0全1)

  2. 每个桶子需要存储后50位得到的Kmax值(起始开始最多连续零个数),而50位最多有50个0,因此Kmax最大取到50,2^6 = 64 > 50,因此每个桶只需要6个bit位就可以保存Kmax

  3. 每8个bit位为1字节,每1024字节为1K

  4. 综合以上两点:Hyperloglog的大小 = 16384 * 6 / 8 * 1024 = 12KB

  5. Redis将这种情况称为密集(dense)存储。

  6. 核心点:hyperloglog不存数据,可以理解为每个元素添加进去,一样的元素kmax不变,最后根据kmax估计所有桶去重个数 加和即可

案例实战
  • UV的统计需要去重,一个用户一天内的多次访问只能算作一次

  • 淘宝、天猫首页的UV,平均每天是1~1.5个亿左右

  • 每天存1.5个亿的IP,访问者来了后先去查是否存在,不存在加入

方案讨论:
  • 用mysql
  • 用 redis的hash结构存储
  • hyperloglog

代码实现:

//实现三层架构controller service  redisTemplete 即可

地理位置计算

在这里插入图片描述

GEO相关命令:

redis-cli --raw解决中文乱码问题

命令作用
GEOADD key longitude latitude member [longitude latitude member …]GEOADD 添加位置坐标
GEOPOS key member [member …]获取指定位置的坐标
GEOHASH key member [member …]返回坐标的geohash表示32位编码值 从三维编程二进制
GEODIST key member1 member2 [m\km\ft\mi]两个位置之间的距离
georadius key longitude latitude dist [m\km\ft\mi] withcoord count 10 desc以给定经纬度为中心,查找半径内附近的XXX
georadiusbymember key member dist [m\km\ft\mi] withlist withcoord count 10 withhash找出给定指定范围内的元素,中心点是由给定的位置元素决定
代码实例
//geoController
controller层调sevice层的方法	
//geoService调用redisTemplete层的对应geo方法写在service层下的方法即可//如geoadd()方法//注意点:整合springboot整合redis后 会有一个point类型,里面存经纬度public String geoadd(){Map<String,Point> map=new HashMap<>();map.put("天安门"new Point(116.403963,39.915119));...redisTemplete.opsForGeo().add(CITY,map);return map.toString();
}
//获得经纬度坐标public Point position(String member){				//key,member,如输入meber天安门,则返回天安门的经纬度坐标List<Point>list=redisTemplete.opsForGeo().position(CITY,member)}
//找出给定指定范围内的元素,中心点是由给定的位置元素决定
public GeoResults radiusByxy(){//北京王府井位置 116.418017,39.914402                 //以千米为单位给出半径Circle circle=new Circle(116.418017,39.914402,Metrics.KILOMETERS.getMultipler());//返回50条                              RedisGeoCommands.GeoRadiusCommandArgs args=     半径         距离           伴随经纬度      降序              50条记录 RedisGeoCommands.GeoRadiusCommandArgs.newGeoRadiusArgs().includeDistance.includeCoordinates().sortDescending().limit(50)reidsTemple.opsForGeo().radius(CITY,circle,args).var;return geoResults;
}
http://www.dtcms.com/wzjs/276984.html

相关文章:

  • 温州商城网站建设成人教育培训机构十大排名
  • 找有意者做阿里巴巴去哪个网站知乎营销平台
  • 企业网站怎做seo是什么单位
  • 织梦网站图片不显示营销策划方案怎么做
  • 唐尧文化 网站建设工作总结近一周的新闻大事热点
  • 做海南旅游网站的初衷seo辅助工具
  • 给个龙做罗拉的网站百度问答首页
  • 打开网页wordpress错误重庆seo网页优化
  • 如何做网站的登录日志指数基金怎么买才赚钱
  • 如何做微信网站建设成都seo专家
  • 会计信息网站建设的意思郑州百度网站快速优化
  • 吉林省做网站公司sem代运营费用
  • 医院做网站的费用多少郴州网络推广外包公司
  • 东莞企业建站收费产品推广百度seo关键词优化市场
  • flash网站链接怎么做怎么做好seo推广
  • 哪个网站简历做的好百度统计api
  • 网站建设与管理案例教程在线阅读湖州网站建设制作
  • 网站开发公司长春百度品牌广告多少钱
  • 做钓鱼网站违法上优化seo
  • 兰州兼职做网站如何优化网站排名
  • 和君网站建设北京网站seo招聘
  • 智联招聘网站怎么做微招聘信息吗2021全国大学生营销大赛
  • 网站源码搭建教程免费发帖论坛大全
  • 中国江西网官方网站西地那非能提高硬度吗
  • 宿迁网络公司百度关键词seo外包
  • wordpress导航站模板人工智能培训心得
  • 网店运营推广高级实训教程seo怎么做优化方案
  • 团购网站 如何做推广2022十大热点事件及评析
  • 如何管理个人网站百度指数明星搜索排名
  • 提供常州网站建设南京seo排名优化公司