- 博客(5)
- 资源 (5)
- 收藏
- 关注
原创 两个大数相加
如何计算两个超出 int64 的整数呢?正常情况下,使用 int 时是有长度限制的,超出就溢出了,但是字符串可就没有这个限制了,因此可以往字符串这个方向考虑。比如 “123456789” 这个字符串,里面的每个字符都是 ASCII 码,字符类型 9 如果转换成整数类型的 9 呢,下面贴出下 ASCII 码的对照表。看上图圈红的地方,字符 9 转换为整数 9 只需 ‘9’ - ‘0’ = 57 - 48 = 9 即可。这样一来,大数相加就可用转换为 ASCII 码和相加进位的问题。但是两个字符串相
2021-06-18 17:47:37 345
原创 Redis 是如何回复命令的
文章目录缘由数据存放位置发送时机结语缘由这篇博文源于群里一个群友的提问在 redis 里面存放了一个 1000w 长度的 list,然后使用 lrange 0 -1 全取出来,这会用很久。这时候我新建个连接,继续其他 key 的读写操作都是可以的。不应该是阻塞吗?那么接下来就来分析为什么会这样,也就是对应标题中 Redis 是如何回复命令的。注:本文中 Redis 版本为 6.2.4数据存放位置Redis 执行完命令后,会把回复的内存写入到当前客户端的两个地方 buf 和 reply,
2021-06-06 18:58:49 564
原创 gdb 调试 redis-cli 命令发送接收流程
文章目录前言redis-cli前言在 Redis 中输入 set name molaifeng ,意思很简单,写入一个 name 字符串键,值为 molaifeng,今天就以 gdb 调试的形式来探讨下其在 Redis 中的流程。注,本文中 Redis 版本为 6.2.4redis-cli先从 redis-cli 说起,在 cliSendCommand 处打个断点,接下来就追踪下代码流程。# gdb ./src/redis-cli GNU gdb (GDB) 7.6.1Copyright
2021-06-06 11:35:47 516 1
原创 Redis 事务执行流程源码分析
一般事务执行流程为# ./src/redis-cli 127.0.0.1:6379> MULTIOK127.0.0.1:6379(TX)> set name molaifengQUEUED127.0.0.1:6379(TX)> set hobby codingQUEUED127.0.0.1:6379(TX)> EXEC1) OK2) OK结合源码分析如下第一步 MULTI就是给当前的客户端加上 CLIENT_MULTI 状态,当然了,如果当前客户端状态
2021-06-05 11:23:28 132
原创 Linux 中 gdb 调试 Redis
这月开启实战 gdb 调试 Redis 源码系列,以目前官网上最新的稳定版本 6.2.4 来调式。首先,下载源码。wget https://download.redis.io/releases/redis-6.2.4.tar.gztar xf redis-6.2.4.tar.gzcd redis-6.2.4其次,解压并编译 make CFLAGS="-g -O0",不用 make install。最后,使用 gdb src/redis-server 进行调试。# gdb src/redis-
2021-06-05 10:37:24 310
epel.repo
2016-06-06
XHProf简明教程
2015-09-17
php_curl-5.4.3-VC9-x64的php_curl.dll
2015-01-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人