2025年10月13日

Redis删除特定的前缀

摘要: redis没有提供可以直接使用的,需要自己封装: 不能使用keys ,而是使用scan Redis命令 对应的命令: redis-cli --raw keys "*prefix*" | xargs redis-cli del # SCAN cursor [MATCH pattern] [COUNT 阅读全文

posted @ 2025-10-13 00:42 chuchengzhi 阅读(13) 评论(0) 推荐(0)

Redis的数据结构

摘要: Redis的数据结构 重要:Redis 为什么用跳表而不用平衡树? https://juejin.cn/post/6844903446475177998 https://mp.weixin.qq.com/s?__biz=MzA4NTg1MjM0Mg==&mid=509777776&idx=1&sn= 阅读全文

posted @ 2025-10-13 00:41 chuchengzhi 阅读(6) 评论(0) 推荐(0)

Redis不同数据类型代码场景实践

摘要: string 博客不好的实现 jedis.set("key1", "value1"); jedis.get("key1"); jedis.del("lock_test"); jedis.incr("blog_id_counter"); Long key = jedis.incrBy("key", 1 阅读全文

posted @ 2025-10-13 00:40 chuchengzhi 阅读(5) 评论(0) 推荐(0)

布隆过滤器

摘要: 布隆过滤器 布隆过滤器由「初始值都为 0 的位图数组」和「 N 个哈希函数」两部分组成。当我们在写入数据库数据时,在布隆过滤器里做个标记,这样下次查询数据是否在数据库时,只需要查询布隆过滤器,如果查询到数据没有被标记,说明不在数据库中。 第一步,使用 N 个哈希函数分别对数据做哈希计算,得到 N 个 阅读全文

posted @ 2025-10-13 00:40 chuchengzhi 阅读(10) 评论(0) 推荐(0)

一致性哈希原理

摘要: 数据服务器如何组织:设计时候保证高频中低频都有数量。否则就是忙的忙死闲的闲死 逻辑层服务器:增加和减少机器的时候代价很小 数据层服务器:增加和减少机器的时候代价是全量的 取模服务器个数的问题--缓存雪崩 取模 也可以 实现数据底层均匀分布,hash(图片名称)% N 当服务器数量发生改变时,所有缓存 阅读全文

posted @ 2025-10-13 00:39 chuchengzhi 阅读(7) 评论(0) 推荐(0)

缓存和数据库数据的一致性

摘要: 缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的 问题 Redis 的 qps 可以达到 10 万每秒,对于一般体量的互联网公司,一台机器就够了。但不论是什么业务,都不得不面对一个棘手的问题:那就是 Redis 和源数据的一致性问题。 对高可用、成本、一致性的权衡,进入到了特事特办的场景 阅读全文

posted @ 2025-10-13 00:39 chuchengzhi 阅读(9) 评论(0) 推荐(0)

Redis实现分布式锁以及Redis客户端比较

摘要: 对比 1、redisTemplate是基于某个具体实现的再封装,比如说springBoot1.x时,具体实现是jedis;而到了springBoot2.x时,具体实现变成了lettuce。封装的好处就是隐藏了具体的实现,使调用更简单,但是有人测试过jedis效率要10-30倍的高于redisTemp 阅读全文

posted @ 2025-10-13 00:37 chuchengzhi 阅读(13) 评论(0) 推荐(0)

Redis核心数据类型的底层编码(C源码)(重要)

摘要: Redis K-V 底层设计原理:字典hashtable key:string val:string、hash、list、set、sorted set map 就是字典,还要支持海量数据的存储,查找和插入删除(hashtable) hashtable 里面 hash(key) % hashtable 阅读全文

posted @ 2025-10-13 00:37 chuchengzhi 阅读(16) 评论(0) 推荐(0)

Redis持久化

摘要: 对比 AOF 文件的内容是操作命令; RDB 文件的内容是二进制数据。 RDB 快照就是记录某一个瞬间的内存实际数据,而 AOF 文件记录的是命令操作的日志 RDB 恢复数据的效率会比 AOF 高些,因为直接将 RDB 文件读入内存就可以,不需要像 AOF 那样还需要额外执行操作命令的步骤才能恢复数 阅读全文

posted @ 2025-10-13 00:36 chuchengzhi 阅读(7) 评论(0) 推荐(0)

MongoDB

摘要: MongoDB快速回忆 可用性和高性能是比较好的 特性概括 不用太多关心一对多关系 基本操作 1、快速构建mongodb环境(docker构建) 可视化 2、基本语法(复杂查询语法) show dbs 可以在MongoDB里面运行js 4、mongodb索引使用方法 原理 单个索引: 复合索引: 语 阅读全文

posted @ 2025-10-13 00:35 chuchengzhi 阅读(4) 评论(0) 推荐(0)

2025年10月12日

ElasticSearch

摘要: ElasticSearch的应用场景说明 全文检索能力 日志存储分析能力 数据存储(用的比较少) 全文检索 什么是全文检索 存在索引关键字,就是命中文档 使用关键字就可以搜索对应的文档数据 检索算法 倒排索引 先将非结构化数据转换为结构化数据,之后使用关键字建立索引 全文检索的结构 索引库结构 检索 阅读全文

posted @ 2025-10-12 21:51 chuchengzhi 阅读(13) 评论(0) 推荐(0)

Linux性能分析、调优套路以及工具总结

摘要: 分析性能问题 从系统资源瓶颈的角度来说,USE 法是最为有效的方法,即从使用率、饱和度以及错误数 这三个方面,来分析 CPU、内存、磁盘和文件系统 I/O、网络以及内核资源限制等各类软 硬件资源。 从应用程序瓶颈的角度来说,资源瓶颈跟系统资源瓶颈,本质是一样的。依赖服务瓶颈,你可以使用全链路跟踪系统 阅读全文

posted @ 2025-10-12 21:45 chuchengzhi 阅读(45) 评论(0) 推荐(0)

系统监控与应用监控

摘要: 很多应用都是等到用户抱怨响应慢了,或者系统崩 溃了后,才发现系统或者应用程序的性能出现了问题。虽然最终也能发现问题,但显然,这 种方法是不可取的,因为严重影响了用户的体验。要解决这个问题,就要搭建监控系统,把系统和应用程序的运行状况监控起来,并定义一系列的策略,在发生问题时第一时间告警通知。 监控系 阅读全文

posted @ 2025-10-12 21:44 chuchengzhi 阅读(16) 评论(0) 推荐(0)

Linux的IO知识总结

摘要: 文件系统,是对存储设备上的文件进行组织管理的一种机制。为了支持各类不同的文件系 统,Linux 在各种文件系统上,抽象了一层虚拟文件系统 VFS。 它定义了一组所有文件系统都支持的数据结构和标准接口。这样,应用程序和内核中的其他 子系统,就只需要跟 VFS 提供的统一接口进行交互。 在文件系统的下层 阅读全文

posted @ 2025-10-12 21:44 chuchengzhi 阅读(13) 评论(0) 推荐(0)

Linux文件系统与磁盘工作原理

摘要: 磁盘为系统提供了最基本的持久化存储。 文件系统则在磁盘的基础上,提供了一个用来管理文件的树状结构。 “Linux 一切皆文件”的深刻含义。无论是普通文件和块设备、还是网 络套接字和管道等,它们都通过统一的 VFS 接口来访问。 索引节点和目录项 文件系统,本身是对存储设备上的文件 进行组织管理的机制 阅读全文

posted @ 2025-10-12 21:43 chuchengzhi 阅读(21) 评论(0) 推荐(0)

Linux文件系统的实验

摘要: Linux硬、软连接 硬连接:指向了同一个物理位置。建立连接之后,INODE是一样的,引用的个数增加。删掉原始的文件,只是把引用删除了。下面图片的1和2就是指物理文件被引用的个数,删除其中一个引用个数就是1了。而且stat显示的两个文件的INODE是一样的 ln /root/a.txt /root/ 阅读全文

posted @ 2025-10-12 21:42 chuchengzhi 阅读(13) 评论(0) 推荐(0)

系统响应慢分析案例

摘要: 响应很慢,这种情况下, 是不是系统资源出现 了瓶颈。所以,先观察 CPU、内存和磁盘 I/O 等的使用情况肯定不会错。 应用程序记录大量日志 top ,来观察 CPU 和内存的使用情况 观察 top 的输出,你会发现,CPU0 的使用率非常高,它的系统 CPU 使用率(sys%)为 6%,而 iow 阅读全文

posted @ 2025-10-12 21:42 chuchengzhi 阅读(12) 评论(0) 推荐(0)

iowait的CPU使用率升高-大量不可中断进程和僵尸进程

摘要: 进程的不可中断状态是系统的一种保护机制,可以 保证硬件的交互过程不被意外打断。所以,短时间的不可中断状态是很正常的。但是,当进程长时间都处于不可中断状态时,进程很可能因为得不到硬件的响应,而长时间处于不可中断状态。 从 ps 或者 top 命令的输出中 D 状态,也就是不可中断状态 (Uninter 阅读全文

posted @ 2025-10-12 21:41 chuchengzhi 阅读(33) 评论(0) 推荐(0)

CPU分析和优化总结

摘要: CPU 性能指标 CPU 使用率 用户 CPU 使用率,包括用户态 CPU 使用率(user)和低优先级用户态 CPU 使用率 (nice),表示 CPU 在用户态运行的时间百分比。用户 CPU 使用率高,通常说明有应用程序比较繁忙。 系统 CPU 使用率,表示 CPU 在内核态运行的时间百分比(不 阅读全文

posted @ 2025-10-12 21:40 chuchengzhi 阅读(96) 评论(0) 推荐(0)

CPU平均负载升高的三个排查角度

摘要: yum install -y man-pages 平均负载 == 平均活跃进程数 != cpu使用率 uptime:1 分钟、5 分钟、15 分钟的平均负载(Load Average)。 0.63 不是CPU的使用率,而是单位时间内,系统处于可运行和不可中断的平均线程数。也就是平均活跃进程数。 可运 阅读全文

posted @ 2025-10-12 21:39 chuchengzhi 阅读(42) 评论(0) 推荐(0)

CPU多进程切换导致过载-CPU上下文切换

摘要: Linux 支持远大于 CPU 数量的任务同时运行。系统在很短的时间内,将 CPU 轮流分配给它们,造成多任务同时运行的错觉。过多的上下文切换,会把 CPU 时间消耗在寄存器、内核栈以及虚拟内存等数据的保存和恢复上,从而缩短进程真正运行的时间,导致系统的整体性能大幅下降。 每个进程运行前,系统事先帮 阅读全文

posted @ 2025-10-12 21:39 chuchengzhi 阅读(12) 评论(0) 推荐(0)

用户和系统CPU使用率升高

摘要: CPU节拍率和节拍数 为了维护 CPU 时间,Linux 通过事先定义的节拍率(内核中表示为 HZ),触发时间中断,并使用全局变量 Jiffies 记录了开机以来的节拍数。每发生一次时间中断,Jiffies 的值就加 1。 节拍率 HZ 是内核的可配选项,可以设置为 100、250、1000 等。不 阅读全文

posted @ 2025-10-12 21:37 chuchengzhi 阅读(13) 评论(0) 推荐(0)

软中断softirq的CPU使用率升高

摘要: 中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求。中断其实是一种异步的事件处理机制,可以提高系统的并发处理能 力。 由于中断处理程序会打断其他进程的运行,所以,为了减少对正常进程运行调度的影响,中 断处理程序就需要尽可能快地运行。 阅读全文

posted @ 2025-10-12 21:36 chuchengzhi 阅读(41) 评论(0) 推荐(0)

Linux网络性能评估压测

摘要: 性能评估是优化网络性能的前提,只有在你发现网络性能瓶颈时,才需要进行网络性能优化。 由于低层协议是高层协议的基础。所以,一般情况下,我们需要从上到下,对每个协议层进 行性能测试,然后根据性能测试的结果,结合 Linux 网络协议栈的原理,找出导致性能瓶颈的根源,进而优化网络性能。 性能指标 带宽,表 阅读全文

posted @ 2025-10-12 21:36 chuchengzhi 阅读(26) 评论(0) 推荐(0)

Linux网络实验

摘要: netstat netstat -natp # n 是直接获取IP而不是域名 # a 所有的socket链接 # t tcp # p 显示进程的名字以及pid tcpdump tcpdump # 打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。 # 监控e 阅读全文

posted @ 2025-10-12 21:35 chuchengzhi 阅读(10) 评论(0) 推荐(0)

导航

杭州技术博主,专注分享云计算领域实战经验、技术教程与行业洞察, 打造聚焦云计算技术的垂直博客,助力开发者快速掌握云服务核心能力。

褚成志 云计算 技术博客