如何查看Redis订阅的模式字符串 发表于 2021-11-21 分类于 Redis 本文字数: 956 阅读时长 ≈ 1 分钟 问题描述pubsub channels可以查看Redis中被订阅的频道(channel): 阅读全文 »
Redis抓包分析案例 发表于 2021-11-06 分类于 troubleshooting 本文字数: 1.4k 阅读时长 ≈ 1 分钟 问题描述业务背景: 有一台由多个Docker容器组成的仿真设备环境,1个Docker部署Redis服务端,剩余每个Docker都作为Redis客户端,用于模拟一块单板。 问题: 仿真设备启动中,概率出现Redis的某个字符串键被不符合预期地改写成空串,导致客户端Docker从Redis获取的数据有问题。需要定位是哪个Docker上的哪个进程改写了Redis数据库。 阅读全文 »
使用GDB修改二进制文件 发表于 2021-10-16 分类于 GDB 本文字数: 3.2k 阅读时长 ≈ 3 分钟 背景介绍GDB不仅可以用来调试程序,还可以直接修改被调试程序的二进制文件。这种方式相比于改源码重新编译、gdb attach有什么优势呢?考虑以下企业生产环境中的几个调试场景: 需要修改的二进制文件是其他领域的,你没有源码和编译工程,让相关领域出调试对接件比较费时,但你只想临时改一行别人的代码,几分钟内完成验证。 调试环境上,使用gdb attach进程方式有困难: 被调试的服务(进程)没有启动断点(可定位性很差),或者gdb手动拉起的方法非常复杂,等服务正常启动后再attach已经赶不上打断点的时机。 长时间gdb挂住业务进程导致触发丢心跳复位。 你不确定修改的二进制文件同时被几个进程加载,但你诉求很明确,就是直接改文件,对所有进程生效。 以下举一个简单的例子,介绍GDB修改程序二进制文件的技巧: 阅读全文 »
使用wget批量下载指定类型文件 发表于 2021-10-16 分类于 wget 本文字数: 621 阅读时长 ≈ 1 分钟 举例:下载所有的RPM包(文件的扩展名为rpm) 1wget -c -r -np -k -L -p -A rpm http:XXX/ 其中各参数意义可通过wget -h查看,如下: 阅读全文 »
修改Docker容器的存储路径 发表于 2021-10-16 分类于 Docker 本文字数: 340 阅读时长 ≈ 1 分钟 前言docker拉取的镜像默认存储在根路径(/var/lib/docker),但根路径存储空间有限。我们可以通过挂载更大的磁盘,将docker数据迁移到挂载磁盘上, 以解决空间不足问题。具体方法如下: 阅读全文 »
Leetcode 664 奇怪的打印机 发表于 2021-08-15 分类于 LeetCode 本文字数: 2.9k 阅读时长 ≈ 3 分钟 题目描述https://leetcode-cn.com/problems/strange-printer 阅读全文 »