首页
学习
活动
专区
圈层
工具
发布

Redis 基数 Hyperloglog 用于计不重复数量

再次强调:用于计算不重复元素的数量,不可打印元素 Hyperloglog 存储基数。但什么是基数? A {1,3,5,7,9} B {1,3,3,5,7} 其中A就是基数,B有重复元素就不是基数。...一般用于网站UV,就是用户数量统计! 基数:说白了就是不重复的元素 好处 占用内存是固定的,只需要12KB内存!可存储2的64次方的元素。不管存多少个(数量在2的64次方内),都是12KB。...Hyperloglog相关命令 PFADD :添加一个或多个元素到某个key中 参数:key 元素… PFCOUNT :获取某个key 或多个key 元素数量 参数:key… PFMERGE :...合并多个分支 参数:newkey oldkey1 oldkey2 … 实验:redis-cli 添加元素 查询数量 合并元素 # 添加元素 a - k 到mykey1 (一共 11 个) pfadd...mykey1 a b c d e f g h i j k # 统计mykey1元素数量 pfcount mykey1 # 添加元素 k - n 到mykey2 (一共 4 个) pfadd mykey2

58520

如何生成指定数量的 随机且不重复的 ip地址

那么如何用shell脚本生成一定数量的随机且不重复的ip地址呢? 回答 为了简化脚本实现,我们可以将ip地址限定在给定的网段内,子网掩码长度可以用参数指定。...我们可以使用 ipcalc 命令计算子网内可用的ip地址范围,这个ip范围可以看成一个元素为ip的数组;使用 shuf 命令生成随机且不重复的整数序列,这些整数可以看成是数组的索引;这样结合起来便可实现问题需求...bytes[0]} << 24) + (${bytes[1]} << 16) + (${bytes[2]} << 8) + ${bytes[3]} )) echo $num } # 检查脚本参数数量...convert_ip_to_num $first_ip) max_ip=$(convert_ip_to_num $last_ip) max_range=$(( max_ip - min_ip )) # 生成随机且不重复的整数序列

1.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL|查询字段数量多少对查询效率的影响

    通过 select 字段构建 readset(MySQL 层) 首先需要构建一个叫做 read_set 的位图,来表示访问的字段位置及数量。...初次访问定位的时候还会构建一个模板(mysql_row_templ_t)(Innodb 层) 本模板主要用于当 Innodb 层数据到 MySQL 层做转换的时候使用,其中记录了使用的字段数量、字段的字符集...因此这里的模板数量是和我们访问的字段个数一样的。...好了到这里我们大概知道全表扫描的访问数据的流程了,我们就来看看一下在全表扫描流程中字段的多少到底有哪些异同点: 不同点: 构建的 read_set 不同,字段越多 read_set 中为 '1' 的位数越多 建立的模板不同,字段越多模板数量越多...四、写在最后 虽然本文中以全表扫描为列进行了解释,但是实际上任何情况下我们都应该缩减访问字段的数量,应该只访问需要的字段。

    7.7K20

    MySQL选错索引导致的线上慢查询事故复盘

    在排查过程中,查阅了许多资料,也学习了下MySQL优化器选择索引的基本准则,在本文中进行解决问题思路的分享。本人MySQL了解深度有限,如果错误欢迎理性讨论和指正。...MySQL索引选择原理 优化器索引选择的准则 MySQL一条语句的执行流程大致如下图,而查询优化器则是选择索引的地方: ? 引用参考文献一段解释: 首先要知道,选择索引是MySQL优化器的工作。...实际上explain的rows是MySQL预估的行数,是根据查询条件、索引和limit综合考虑出来的预估行数。 MySQL是怎样得到索引的基数的呢?...把limit数量调大会影响预估行数rows,进而影响优化器索引的选择吗? 答案是会。...参考 《高性能MySQL》 MySQL优化器 limit影响的case: https://www.cnblogs.com/xpchild/p/3878417.html mysql中走与不走索引的情况汇集

    1.4K40

    又到一年金三银四,还敢不重视 MySQL 原理吗?

    2天时间,掌握MySQL 核心架构技术,并在58、转转等大厂千亿级真实海量数据案例中,培养你的MySQL 实战能力,助你斩获大厂offer,实现职场进阶!...2天,覆盖MySQL大厂面试24大核心问题,拿下大厂面试必考点,突破加分项!...通过学习,你将精通包括MySQL架构设计深入剖析篇、千亿级企业海量数据分库分表方法论提炼篇、千亿级企业海量数据真实案例设计与实践等核心实战内容,通过通俗易懂的企业案例式讲解,带你真正掌握架构师级MySQL...在真实项目实践中,获取和提升以下能力: 掌握MySQL架构体系的设计原理; 掌握MySQL存储引擎、索引、事务等实现原理; 掌握千亿级企业海量数据分库分表设计方法论; 掌握海量数据分库分表带来的数据路由与分布式事务解决方案设计能力...架构师级MySQL的真实项目实战课 你需要真正掌握它!24个要点名师打造的干货内容2天精讲原价499,限时扫码0.01体系化搞懂主流数据库MySQL实战!

    1.2K20

    MySQL Insert语句单个批次数量过多导致的CPU性能问题分析

    innodb层,同时看到还有280个线程在排队等待进入innodb线程,状态是sleeping before entering InnoDB innodb层的并发线程执行的SQL比较慢,产生了阻塞,导致了MySQL...执行慢】 从正在执行的SQL中,看到了insert的慢查询SQL语句,统计了下这句SQL批量插入大于342条记录(SQL被截断) 【批量insert的性能测试】 类似这种批量的insert SQL会对MySQL...每340条1个批次insert 用压测工具模拟512个并发线程的情况下,不同类型的SQL插入100W条记录服务器的性能情况,下表是压测统计 数据量 并发线程 执行时间(秒) 每秒insert 慢查询数量...可以看到当每100条记录一个批次执行insert时,开始出现慢查询,每340条1个批次执行insert时,在高并发的情况下,会产生大量的慢查询,这个现象接近于我们目前生产环境异常时的情况 【优化方案】 对于MySQL...但当批次增大到一定数量时,在高并发访问的情况下,单个批次执行的性能会出现较大的下降,出现大量慢查询,并发线程堆积,CPU上升出现瓶颈, innodb层的并发线程处理被慢查询阻塞,后面只能通过限流来缓解性能问题

    1.8K10

    【MySQL面试硬核复盘】行锁、事务、索引怎么答?这些坑别再踩了!

    很多同学背熟了MySQL八股文,但一到面试深挖就露怯。今天分享一场真实的MySQL专项技术面试复盘,全程高能聚焦数据库原理和实战,帮你彻底搞懂“行锁怎么用?”“索引如何避免回表?”...延伸加分技巧:可以主动提到幻读以及Next-Key Lock:“需要注意的是,RR级别通过MVCC解决了‘不可重复读’,但对于‘幻读’(两次查询结果集数量不同),在某些场景下(比如当前读:SELECT...Q6:MySQL中一条UPDATE语句的执行流程是怎样的?...结尾:给你的3个MySQL面试准备硬核建议 原理要串联,不要孤立:别死记“MVCC有ReadView”。...希望这次MySQL面试复盘能帮你把知识融会贯通,下次面试遇到数据库问题,都能对答如流~

    77510

    异构数据集成搬追对三步落地复盘:Oracle、MySQL迁国产库

    ERP在Oracle,CRM用MySQL,报表库是SQLServer,后来分析平台又上了Hadoop。每套系统当年都是按需采购的,没人会提前设计"以后要互通"。...去读数据库自己的日志,Oracle读redolog,MySQL读binlog,PostgreSQL读WAL,把变更一条条解析出来,再应用到目标端。第三种为什么越来越主流?...MySQL里是binlog文件名加偏移量,Oracle里是SCN,PostgreSQL里是LSN。工具把"读到哪了"记下来,链路断了重启,就从上次的位点接着读,不重复也不漏。...五、案例复盘:Oracle、MySQL迁向国产库,异构数据集成怎么落地聊个我做国产化替代时很典型的场景。...上线前一定把增量链路压测扎实,重点看链路断了、重启之后,位点能不能接着上次续上,不重也不漏。两个系统里"同名字段不同含义"是常态,光看字段名根本发现不了。

    16310
    领券