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

萍乡网站建设公司信息流广告投放渠道

萍乡网站建设公司,信息流广告投放渠道,智通人才东莞招聘网,广州十大建筑设计院目录 Bitmaps 简介 命令 Bitmaps和set对比 HyperLogLog 介绍 命令 Geospatial 简介 命令 Bitmaps 简介 现代计算机用二进制(位)作为信息的基本单位,1个字节等于8位。合理的使用和操作位可以有效的提高内存的使用率和开发效率。 redis提供了Bitmaps这个"数据类…

目录

Bitmaps

        简介

        命令

         Bitmaps和set对比

HyperLogLog

        介绍

        命令

 Geospatial

        简介

        命令


Bitmaps

        简介

        现代计算机用二进制(位)作为信息的基本单位,1个字节等于8位。合理的使用和操作位可以有效的提高内存的使用率和开发效率。

        redis提供了Bitmaps这个"数据类型"可以实现对位的操作。

  • Bitmaps本身不是一种数据类型,实际上它就是字符串,但是它可以对字符串的位进行操作。
  • Bitmaps单独提供了一套命令,所以在redis中使用Bitmaps和使用字符串的方法不大相同。可以将Bitmaps想象成一个以位为单位的数组,数组的每个单位只能存储0和1,数组的下标在Bitmaps中叫做偏移量。

        命令

  • setbit:向Bitmaps中插入数据。

格式:setbit key offset value //offset:偏移量从0开始

实例:

        每个独立的用户是否访问过网站保存在Bitmaps中,将访问过的用户置1,没有访问过的用户置0,使用用户id作偏移量。

        假设现在有20个用户,用户id为1,6,11,15,19的用户访问过网站。使用命令初始化数据如下:

  •  getbit:获得Bitmaps中对应偏移量的值

格式:getbit key offset

获得Bitmaps中第offset位的值。从0开始算。

 注释:因为115根本不存在,所以也返回0。

  • bitcount:统计字符串被设置为1的位的个数。也可以指定start和end参数,可以让计数只在特定的位上进行。start和end可以为负数,比如:-1表示最后一位,-2表示倒数第二位。start和end不填写时表示查找范围为全部。

        start和end的范围为[start,end],且start和end表示的是字节的下标数

格式:bitcount key start end

统计字符串从start字节到end字节比特位为1的个数。

由上面的例子知道第1,6,11,15,19位为1。最少占3字节。

 注意:setbit是设置第几位的值。bitcount计算的是以字节为单位范围内1的个数。

  • bitop:是一个复合操作,它可以做多个Bitmaps的and(交集),or(并集),not(非),xor(异或)操作。

格式:bitop 复合操作 destkey key [key... ...]

//符合操作后的结果保存早destkey中。

实例:

         Bitmaps和set对比

        假设有1亿个用户,每天独立访问的用户有5千万。使用set集合和bitmaps来保存活跃的用户可以得到表:

        set只需要保存活跃的用户,而bitmaps的重点在于标明用户是否活跃。所以set需要存储的用户量为5千万,bitmaps则需要表明所有用户是否活跃,所以需要存储的用户量为1亿,但是只需要用1位来表明即可。

         很明显,使用Bitmaps能节省很多的内存空间,尤其是随着时间的推移,节省的内存空间更多。

        但是,当活跃的用户量比较少时,set保存活跃用户的id,记录的的用户数量少,占用的内存会比较少。而bitmaps还是需要记录所有用户是否活跃。这个时候使用bitmaps就不大合适了。

HyperLogLog

        介绍

        在工作中,我们经常会遇到按照搜索记录需要进行去重和计数的问题。这种在集合中求不重复的元素和计数的问题称为基数问题。

        什么是基数:不重复元素个数。

        比如数据集合{1,3,5,7,5,7,9},那么这个集合的基数集为{1,3,5,7,9}。基数(不重复元素)为5。基数估计就是在误差可接受的范围内,快速计算基数。

        解决基数问题的方案有很多:

  • 数据保存在Mysql中,使用distinct count计算不重复个数。
  • 使用Redis提供的hash,set,bitmaps可以进行去重。

        但是随着数据量的增加,导致占用空间越来越大,对于非常大的数据集是不切实际的。

        能否降低一定的精度来平衡存储空间?redis推出了HyperLogLog。

        Redis的HyperLogLog是用来做基数统计的算法,优点在于,在输入元素的数量或者体积非常大时,计算基数所需要的空间总是固定的,并且非常的小。在Redis中,每一个HyperLogLog键只需要花费12KB的内存,就可以计算2^64个不同元素的基数。

        但是。因为HyperLogLog只会根据输入的元素来计算基数,而不会存储元素本身,所以HyperLogLog不能像集合一样,返回输入的各个元素。

        命令

  • pfadd:向HyperLogLog中输入元素。

格式:pfadd key element element ...

当执行命令后,HyperLogLog数据结构中估计的近似基数发生变化,则返回1,如果基数没有变化,返回0.

实例:

  •  pfcount:计算HyperLogLog数据结构中近似的基数。可以计算多个HyperLogLog,计算多个HyperLogLog的基数,则是将每一个HyperLogLog合并起来计算。

格式:pfcount key

  •  pfmerge:将一个或者多个HyperLogLog合并后的结果存储在另外一个HyperLogLog中。

格式:pfmerge destkey key1 key2...

 Geospatial

        简介

        该类型是用来记录地理信息的操作,用来表示的是元素的二维坐标,在地图上的经纬度。redis基于该类型,提供了经纬度的设置,查询,范围查询,距离查询,经纬度的Hash等常见操作。

        命令

  • geoadd:添加地理位置(经度,纬度,名称)

格式:geoadd key 经度 维度 名称

         两极无法直接添加,有效经度从-180度到180度,纬度从-85.05112878度到85.05112878度。

        当坐标位置超出指定范围,该命令返回一个错误。

        已经添加的数据,无法再次添加。

  • geopos:获取指定地区的坐标

格式:geopos key 名称

  •  geodist:获取两位置之间的直线距离

格式:geodist key 名称1 名称2 距离单位

距离单位有:m:米,km:千米,ft:英尺,mi:英里。默认使用米作为单位。

  •  georadius:以给定经纬度为中心,找出某一半径内的元素。

格式:georadius key 经度 纬度 半径范围 距离单位

 

 

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

相关文章:

  • 赣州网站设计哪里好电商网站建设
  • 一个做网站的公司年收入真正永久免费的建站系统有哪些
  • 沈阳网约车公司重庆百度整站优化
  • wordpress 页面固定外贸网站seo
  • 合肥最好的网站建设公司排名网络推广深圳有效渠道
  • 贵阳有哪家做网站建设好点的广告推广平台网站
  • 网站建设起到计划和指导作用营销管理系统
  • 厦门市城乡建设局网站河北网站推广
  • 静安西安网站建设青岛网站建设方案优化
  • 网站开发的软件环境有哪些百度推广客服
  • 余姚做网站62752762目前好的推广平台
  • 营销网站建设培训知名的建站公司
  • 优化师是做什么的seo优化的优点
  • 北京做网站公司的排名搜索图片
  • b站做简介的网站鞋子软文推广300字
  • 北京建站模板企业seo网站优化公司
  • 电子商务网站设计分析怎么做免费的电脑优化软件
  • 工作人员否认陈道明演庆余年2seo刷排名工具
  • 浅谈学校网站建设seo包括什么
  • 网站个人和企业有什么区别灰色关键词快速排名
  • 广州英文网站建设谷歌搜索引擎网址
  • 重庆网站的推广方式网站推广的途径有哪些
  • 免费网站电视剧下载快速整站优化
  • 做网站有必要做app吗seo管理系统
  • 乌鲁木齐网站建设开发自己个人怎样做电商
  • 网站建设与开发开题报告网站模板之家官网
  • 在线做免费网站有哪些抖音关键词优化排名靠前
  • 可以做伦铜的网站长沙seo霜天博客
  • 网站买流量是怎么做的推广普通话宣传内容
  • 住房和城乡建设部证书怎么优化关键词