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

南京房地产网站建设网络广告推广

南京房地产网站建设,网络广告推广,网站上推广游戏怎么做,做网站公司599目录 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.mnyf.cn/news/50651.html

相关文章:

  • 学做网站能赚多少钱如何让百度能查到自己
  • 网站排名权重怎么做跨境电商培训机构哪个靠谱
  • 专业做酒的网站有哪些成免费crm软件有哪些优点
  • 新锐媒体网站建设方案龙华线上推广
  • 福鼎建设局网站网站怎么接广告
  • 做骗子网站网站排名工具
  • 网站开发总跳转至404页面如何提高网站排名seo
  • 政府网站版面布局结构杭州网络
  • 葫芦岛网站建设seo推广技术
  • php网站开发web实例泉州全网推广
  • 网站优化推广的方法网店seo
  • 平潭做网站网站建设的公司
  • 哈尔滨网站建设网络公司我国网络营销现状分析
  • 上海大型网站建设郑州seo价格
  • 网站怎样免费推广广告联盟接广告
  • 自助建站什么意思产品推广方案范文500字
  • 百度网址安全检测中心免费seo在线工具
  • 网站的banner做多大广州网络营销推广
  • 汽车网站的建设方向建站系统主要包括
  • 公司网站建设费用会计处理品牌营销推广方案怎么做
  • 苏州网站设计聚尚网络一站式网站设计
  • 丽水企业网站开发企业人民网舆情数据中心官网
  • 网站建设费会计处理html静态网页制作
  • 个人做网站最方便的方法seo销售
  • 自己的网站怎么做商城站长工具是什么
  • 做海淘的网站要哪些证网站网络推广优化
  • 优秀的电商app设计网站如何推广网站
  • 电子商务网站策划ppt现在最火的发帖平台
  • 模板建站优缺点湖口网站建设
  • 域名展示网站源码网址之家