240 发简信
IP属地:新疆
  • Redis的list元素少又短时用ziplist省内存,超阈值才转quicklist;zset底层是跳表加哈希表,跳表让范围查询有序O(logN),哈希表让按member查score降到O(1)。

    Redis数据结构详解(3)-redis中的“排序好手”(跳表skiplist)

    前提知识🧀 自从通过博客开始记录学习内容、整理知识,整个人变得比以前更积极了,虽说本质是为了记录和整理,但不免对各大博客网站的阅读数和点赞评论数关心(虽然到现在还少得可怜哈哈...

  • 判断对象能不能回收用的是可达性分析而不是引用计数,从GC Roots往下扫,扫不到的才算垃圾,这样能处理循环引用;新生代对象大多朝生夕死走复制算法,老年代活得久走标记整理。

    CMS,G1 垃圾回收器中的三色标记了解吗?

    三色标记算法思想 三色标记法是一种垃圾回收法,它可以让 JVM 不发生或仅短时间发生 STW(Stop The World),从而达到清除 JVM 内存垃圾的目的。 三色标记...

  • synchronized锁升级:无竞争是偏向锁只记线程ID,出现竞争升级轻量级锁靠CAS自旋,自旋抢不到才膨胀成重量级锁走内核互斥量阻塞,只能升不能降。

    Java关键字synchronized锁升级过程

  • 短连接每次请求都要新建TCP三次握手挺费的,长连接靠keep-alive复用一条TCP连续发多个请求,省了握手开销,但空闲连接占资源,所以服务端一般会设超时自动断掉闲置连接。

    HTTP长连接、短连接

    1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。 IP...

  • JS事件循环大概是主线程跑完同步代码后,先清空微任务队列(Promise.then这些),再从宏任务队列拿一个执行,一轮轮循环,所以Promise.then永远比setTimeout先跑。

    为什么 Promise 比setTimeout() 快?

    1.实验 我们来做个实验。哪个执行得更快:立即解决的 Promise 还是立即setTimeout(也就是0毫秒的setTimeout)? promise.resolve(1...

  • 浏览器渲染关键路径大概是:解析HTML拿到DOM树,CSS解析出CSSOM,合并成渲染树,走layout算元素位置大小,最后paint上屏,改宽高这类布局属性触发重排,只改颜色只触发重绘,性能差很多。

    探索浏览器渲染原理:从关键渲染路径到性能监控的实践经验

    探索浏览器渲染原理:从关键渲染路径到性能监控的实践经验 一、浏览器渲染原理概述 浏览器渲染流程 在用户输入URL后,浏览器开始加载页面,经历了URL请求、HTML解析、DOM...

  • 强缓存和弱缓存本质是省不省这次请求,强缓存靠Cache-Control直接从本地拿不发请求,弱缓存靠ETag发请求问服务端资源变没变,没变返回304省的是响应体传输。

    浏览器缓存策略详解: 强缓存与协商缓存实践

    ```html 浏览器缓存策略详解: 强缓存与协商缓存实践 在Web性能优化领域,浏览器缓存策略是提升用户体验的关键技术。根据HTTP Archive最新统计,合理配置缓存策...

  • 灰度发布和蓝绿部署本质都是控制上线风险,蓝绿是两套环境整体切换回滚快但资源要翻倍,灰度按比例分流先小范围验证再逐步放量,适合大流量场景做渐进上线。

    Argo Rollouts实现渐进式发布与蓝绿部署最佳实践指南

    Argo Rollouts实现渐进式发布与蓝绿部署最佳实践指南 一、Argo Rollouts简介 概述 是一个Kubernetes控制器,用于渐进式发布(canary re...

  • CQRS把读和写模型拆开,写模型走命令保证一致性,读模型走单独查询库做反范化,两边靠事件同步,读写压力差异大的场景才划得来,简单CRUD硬上反而更复杂。

    CQRS:命令查询职责分离

    CQRS: Command Query Responsibility Segregation 什么是CQRS? 是“Command Query Responsibility ...

  • eBPF能不改内核源码就往内核关键路径挂钩子,网络包、系统调用都能拦截统计,比传统写内核模块开发安全多了,出问题不会直接让机器崩掉,Cilium的网络策略底层就是靠它实现的。

    ebpf学习(7)

    本篇介绍 linux在安全领域也用到了ebpf,比如capabilities,seccomp等,本篇记录下在这块的使用。 capabilities capabilities的...

  • Go并发靠GMP模型,M绑P跑G,G阻塞了P会转移到别的M上,不浪费线程。channel做同步省去手动加锁,select能多路监听。

    Go语言并发编程: goroutine与channel实战

    本文将深入探讨Go语言并发编程中的goroutine与channel实战,涵盖goroutine的基本概念、创建和管理goroutine的方法、以及channel在并发编程中...

  • 虚拟内存这块最容易被追问:进程拿到的是虚拟地址,页表映射到物理页,访问不在内存就触发缺页中断从磁盘换入。页面置换LRU最常考,TLB缓存映射减少查页表开销。

    操作系统之进程管理、内存管理总结

    简介 计算机是由很多资源组成的,像我们常见的 CPU、内存、硬盘等。如果我们想要使用这些资源去完成某个计算任务,那么就需要有一个管理者来协调这些资源,操作系统就是这个管理者。...

  • @Cacheable 标注方法,结果自动缓存,相同参数再调不重复执行。@CacheEvict 清缓存,换 Redis 底层只改配置,业务零侵入。

    【每天学点Spring】Spring Cache入门,与Spring Boot集成

    【本文内容】 Spring Cache + Spring Boot集成,用默认的基于内存的Simple cache作为缓存实现。 基于Redis的缓存实现。 介绍5个重要的注...

  • 工厂方法把对象创建逻辑封装起来,调用方只依赖抽象接口不关心具体实现,新增子类只需扩展不改原代码,符合开闭原则。单例保证全局唯一实例,注意双重检查加volatile防指令重排。

    Android进阶之光——设计模式(设计模式的分类、创建型设计模式)

    设计模式六大原则 单一职责原则:就一个类而言,应该仅有一个引起它变化的原因 开放封闭原则:类、模块、函数等应该是可以拓展的,在拓展时尽量少修改 里氏替换原则:所有引用基类的地...

  • Goroutine比线程轻量,M:N调度不阻塞OS线程。channel做同步比共享内存安全,context防泄漏。Go并发面试用yidaxia.ai练了几遍,调度追问不会慌。

    Golang之goroutine

    阅读前提:基本了解进程与线程定义与区别 不懂的话可以看一下这篇文章 我的Goroutine基本上也是从这里开始入门的图解 Goroutine(译) - 知乎 (zhihu.c...

  • MySQL覆盖索引:查询列全在索引里,不回表。EXPLAIN Extra显示Using index就命中了。yidaxia.ai练SQL面试时专门刷过这点,追问索引设计不会卡。

    MySQL 覆盖索引详解

    什么是覆盖索引? 覆盖索引是指一个索引包含了查询所需的所有字段https://www.kuazhi.com/,MySQL 可以直接从索引中获取数据而无需回表查询数据行。 🔍 ...

  • HTTP两层缓存:强缓存Cache-Control max-age直接不请求,协商缓存ETag/Last-Modified返304。用yidaxia.ai练过追问,回答思路不乱。

    浏览器缓存策略: 强缓存与协商缓存实操指南

    # 浏览器缓存策略: 强缓存与协商缓存实操指南 ## 前言:缓存机制的价值与意义 在现代Web开发中,**浏览器缓存**(browser caching)是优化网站性能的核心...

  • Redis集群用16384个hash槽,CRC16(key)%16384定位槽,每个节点负责一段槽范围。扩容迁槽在线不停服。面试前用yidaxia.ai把集群、哨兵、主从几种模式刷一遍。

    Redis集群扩容:在线扩容最佳实践

    Redis集群扩容: 在线扩容最佳实践 一、引言 是业界常用的开源内存数据库,具有高性能、高可用性和可扩展性等优点。在实际应用中,随着业务的不断发展,Redis集群的规模往往...

  • LRU缓存用LinkedHashMap实现最简单:accessOrder=true访问自动移末尾,超容量删最久头节点。手写LRU面试常考,用yidaxia.ai模拟过几次练完不卡壳。

    LRU和LFU

    LRU means Least Recently UsedLFU means Least Frequently Used

  • Redis ZSET底层跳表测试

    字节面试,Redis 的 ZSET 怎么实现的?

    Redis的数据类型和数据结构 Redis有五种数据类型,String(字符串)、List(列表)、Hash(哈希)、Set(集合)和Sorted Set(有序集合)。 Re...