上一页 1 2 3 4 5 6 7 ··· 18 下一页
摘要: redo log 是 innodb生成的日志,主要为了保证数据的可靠性;bin log 是 MySQL server层面上生成的日志,主要用于 point in time 恢复和主从复制。undo log 主要用于事务的回滚和一致性快照读(MVCC 多版本并发控制)。 两者区别 MySQL中的red 阅读全文
posted @ 2023-05-09 14:59 邴越 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 一、Buffer和Cache简介 数据写入内存空间,这段空间就是缓冲区buffer,写入缓冲区 把数据从内存空间读出,这段空间就是缓存器cache,读取缓存区 1、 cache Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器。 Cache并不是缓存文件的,而是缓 阅读全文
posted @ 2023-05-08 10:53 邴越 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 这两个参数和MySQL的一致性以及性能相关,默认配置大多数情况下不是最优的。一般来说,互联网线上系统的配置: innodb_flush_log_at_trx_commit —— 0 sync_binlog —— 1000 一、innodb_flush_log_at_trx_commit 事务提交刷盘 阅读全文
posted @ 2023-05-06 15:30 邴越 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 一、平行优惠计算原则 1、什么是“平行式门槛计算规则” 平行式门槛计算规则,即每一层级优惠都直接根据商品的单品基准价来计算是否符合门槛,店铺/平台促销、优惠券类优惠之间是并列关系,只要单品基准价或单品基准价总和(即各商品单品基准价的总和)满足各层级优惠门槛,则可同时享受各种可用优惠。 2、什么是单品 阅读全文
posted @ 2023-05-05 17:42 邴越 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 一、常用的 GC 参数 我们从简单到复杂,一步一步来验证前面学习的知识,学会使用,加深巩固。 启动示例程序 如果是在 IDEA、Eclipse 等集成开发环境中,直接在文件中点击鼠标右键,选择“Run…”即可执行。 如果使用 JDK 命令行,则可以使用 javac 工具来编译,使用 java 命令来 阅读全文
posted @ 2023-05-05 15:22 邴越 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 容器毕竟是一种轻量级的实现方式,所以其封闭性不如虚拟机技术。 1、容器环境的资源隔离性 举个例子: 物理机/宿主机有 96 个 CPU 内核、256GB 物理内存,容器限制的资源是 4 核 8G,那么容器内部的 JVM 进程看到的内核数和内存数是多少呢? 目前来说,JVM 看到的内核数是 96,内存 阅读全文
posted @ 2023-05-05 11:48 邴越 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 问题解决 分析和定位一个Java线上系统问题,我们需要查看JVM启动时的一些参数设置,例如:垃圾回收算法、堆大小等等。这些参数可能在启动脚本中明确指明,也可能采用默认值。 在系统运行过程中其他人也许动态调整了系统参数。 通过jps命令找对对应的pid进程号 [root@swk-207 ~]# ps 阅读全文
posted @ 2023-05-04 11:17 邴越 阅读(645) 评论(0) 推荐(0) 编辑
摘要: BBS等文本内容网站,大都会有敏感词过滤功能,用来过滤掉用户输入的一些淫秽、反动、谩骂等内容。 实际上,这些功能最基本的原理就是字符串匹配算法,也就是通过维护一个敏感词的字典,当用户输入一段文字内容之后,通过字符串匹配算法,来查找用户输入的这段文字,是否包含敏感词。如果有,就用“***”把它替代掉。 阅读全文
posted @ 2023-04-25 17:28 邴越 阅读(39) 评论(0) 推荐(0) 编辑
摘要: TCP连接客户端和服务端双方都可以主动断开,通常先关闭连接的一方称为主动方,后关闭连接的一方称为被动方。 1、TIME_WAIT状态原理 通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。 客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停 阅读全文
posted @ 2023-04-25 16:31 邴越 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 在并发编程中,我们经常会使用容器来存储数据或对象,可以依据场景的变化选择多种容器。 Map并发容器 因为在 JDK1.7 之前,在并发场景下使用 HashMap 会出现死循环,从而导致 CPU 使用率居高不下,而扩容是导致死循环的主要原因。虽然 Java 在 JDK1.8 中修复了 HashMap 阅读全文
posted @ 2023-04-24 16:51 邴越 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 1、散列表碰撞攻击 在极端情况下,攻击者通过精心构造的数据,使得所有的数据都散列到同一个槽里,如果使用链表冲突解决方法,散列表就会退化为链表,查询时间复杂度就从 O(1) 退化为 O(n)。 可能因为查询操作消耗大量 CPU 或者线程资源,导致系统无法响应其他请求,从而达到拒绝服务攻击(DoS)的目 阅读全文
posted @ 2023-04-24 14:24 邴越 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 1、Java 序列化及其缺陷 Java 提供了一种序列化机制,这种机制能够将一个对象序列化为二进制形式(字节数组),用于写入磁盘或输出到网络,同时也能从网络或磁盘中读取字节数组,反序列化成对象,在程序中使用。 JDK 提供的两个输入、输出流对象 ObjectInputStream 和 ObjectO 阅读全文
posted @ 2023-04-23 19:34 邴越 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 1、一致性 Hash 算法原理 一致性 Hash 算法通过构建环状的 Hash 空间替线性 Hash 空间的方法解决了这个问题,整个 Hash 空间被构建成一个首位相接的环。 其具体的构造过程为: 先构造一个长度为 2^32 的一致性 Hash 环 计算每个缓存服务器的 Hash 值,并记录,这就是 阅读全文
posted @ 2023-04-22 21:56 邴越 阅读(412) 评论(0) 推荐(0) 编辑
摘要: Redis 使用该 LRU 算法淘汰过期数据吗?不是的。 由于 LRU 算法需要用链表管理所有的数据,会造成大量额外的空间消耗。 大量的节点被访问就会带来频繁的链表节点移动操作,从而降低了 Redis 性能。 Redis的内存空间是很宝贵的,而维护LRU的双向链表需要使用比较多的额外空间,至少需要一 阅读全文
posted @ 2023-04-21 18:24 邴越 阅读(12) 评论(0) 推荐(0) 编辑
摘要: QUIC协议是HTTP3引入的,所以需要了解HTTP的版本迭代。 HTTP1.x 队头阻塞:下个请求必须在前一个请求返回后才能发出,导致带宽无法被充分利用,后续请求被阻塞(HTTP 1.1 尝试使用流水线(Pipelining)技术,但先天 FIFO(先进先出)机制导致当前请求的执行依赖于上一个请求 阅读全文
posted @ 2023-04-20 17:44 邴越 阅读(901) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 18 下一页