网站不被收录了wordpress 留言 seo no
网站不被收录了,wordpress 留言 seo no,qq空间怎么添加wordpress,手表官方网站bitmap位图我们知道一个字符占1个字节#xff0c;也就是8个位例如set name bigbig字符串中的3个字符的ASCII码为98 105 113所以big转为二进制就是#xff1a;01100010|01101001|01100111b i g占了3个字节的大小#xff0c;一共24个位。bitmap位图可以帮我们获取…bitmap位图我们知道一个字符占1个字节也就是8个位例如set name bigbig字符串中的3个字符的ASCII码为98 105 113所以big转为二进制就是01100010|01101001|01100111b i g占了3个字节的大小一共24个位。bitmap位图可以帮我们获取和设置key存储的值的位。例如获取 name 这个key 的第一个位getbit name 0 # 得到0设置 name 这个key的第8个位为1setbit name 7 1get name # 得到cig,b变成csetbit只能修改位图指定索引的值要么是0要么是1如果使用setbit设置一个不存在的key的位图则会生成这个key并且将偏移量之前的位自动补0例如setbit newKey 99 1 # 生成一个newKey其位图长度为100第100个位的值为1位图为000...001| 99个0 |get newKey # 会得到一堆你不认识的数字\x00\x00\x00\x00\x80bitcount key [start end] # 获取位图指定范围为1的个数bitop option destkey key1 key2 ... keyn # 将多个bitmap进行 and or not xor操作并将结果存到destkey中这里题外话说一下位运算and: 000 010 100 111or 0|00 0|11 1|01 1|11xor: 0^00 0^11 1^01 1^10实战场景大量的独立用户统计具体情境为一个网站有1亿个注册用户每天登陆的用户有5000万个独立用户。记录每天每一个用户是否登陆。两种解决思路a.使用集合set以日期为key集合存放的是当天登陆的用户id。sadd date:20190101 100 5019 43889104 # 2019-01-01这天存了id为100,5019和43889104的id假如每个userid平均占用空间为32个位4字节则一天约有5000万个id被记录到一个集合中所以一天占用的内存空间4*5000万 200M一个月会产生30个这样的集合(这30个key不会都放到内存肯定是只有当天的key放到内存之前的key写入磁盘文件中)会占用30 * 200M 6G 的空间如果想统计连续登录一周的用户可以sinter date:20190101 date:20190102 ... date:20190107b.使用位图 以日期为key设置位图的长度为最大的userid假设最大的userid刚好是100000000(1亿)所以这个key一共有1亿个位。00101100...01101||一天占用的空间为 1亿/8 12.5M具体命令setbit date:20190101 100000000 0 # 先设定位图长度为1亿setbit date:20190101 549 1 # 如userid为549的用户登录就在第549个位上设置为1。setbit date:20190101 98445219 1.....这样每个userid占用的空间实际上只有1个位1/8个字节。但是不管当天只有1个用户登录还是有1亿个用户登录生成的位图的长度都是固定的1亿占用的空间都是固定的12.5M。一个月下来占用12.5*30 375M如果想统计连续登录一周的用户可以bitop and date:20190101 date:20190102 ... date:20190107如果想统计一天的独立用户登录数量bitcount date:20190101如果想获取id为1000的用户在某一天是否登录getbit date:20190101 1000对比set和bitmap发现后者会节省很多空间。但是换一个情景1亿的用户每天10万独立用户登录使用set : 32/8 * 10万 4M使用bitmap: 1亿/8 12.5M此时是使用set更节省空间。HyperLogLog基于Hyperloglog算法可以以极小的空间完成独立数据统计。其本质还是字符串。命令pfadd key element ... # 向hyperloglog添加一个或多个元素pfcount key ... # 计算hyperloglog的不重复的元素总数pfmerge destkey k1 k2 ... # 合并多个hyperloglog赋给destkey实战场景计算每一天的网站的独立访客数量(用户重复进入网站不算)方案使用hyperloglog以日期为key一天建立一个hyperloglog来记录独立访客。用户每访问一次网页就往里面添加用户的id。可以往这个key中添加重复的用户id但是pfcount只会计算不重复值的个数。添加pfadd date:20200101 u1 u100 u439 ...计算一天的独立访客数pfcount date:20200101计算一周的独立访客数pfcount date:20200101 date:20200102 ... date:20200107如果一天有100万的独立用户访问网站则一个hyperloglog只消耗15K的内存一个月450K一年才5M。hyperloglog与set、bitmap的区别和比较hyperloglog消耗内存极小但是它只能计算key中独立元素个数不能取出里面的元素或者查看key中是否有某个元素。所以想获取某个用户在某一天是否登陆就办不到的而set和bitmap都是可以办到的。hyperloglog有一定的错误率例如往pfadd添加100万个不同元素(请勿用一条pfadd添加100万个元素)上面计算出来的元素个数为1009839相比于单纯的字符串型 incr 来计算用户访问的区别是两者都先用很小的空间但incr 不能计算独立用户访问数只能计算用户总访问数(包括刷新页面也计算在内),而hyperloglog可以。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/92399.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!