蓝天

上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 76 下一页

2019年9月8日 #

一个死锁分析过程

摘要: 一小伙说他的程序死锁了,让帮忙看看。对死锁问题,首先祭出GDB这一神器。 (gdb) bt #0 0xffffe410 in __kernel_vsyscall () #1 0xf7fa790e in __lll_mutex_lock_wait () from /lib/libpthread.so. 阅读全文

posted @ 2019-09-08 16:30 #蓝天 阅读(338) 评论(0) 推荐(0) 编辑

2019年9月5日 #

进一步理解指针:一维数组和二维数组转换

摘要: 先看下列代码的输出是什么?int main(){ int m[5] = { 0,1,2,3,4 }; int* p = (int*)(&m+1); printf("%d,%d\n", *(m+1), *(p-1)); return 0;}要知道这个输出,最关键的是要理解指针操作的“加”和“减”,假设 阅读全文

posted @ 2019-09-05 21:27 #蓝天 阅读(1325) 评论(0) 推荐(0) 编辑

进一步理解指针2:双指针、指针数组和数组指针

摘要: 目录 目录 1 1. 概念 1 1.1. 双指针 1 1.2. 指针数组 1 1.3. 数组指针 1 2. 区别 2 3. 兼容性 2 4. 为何列数须相等? 2 5. 初始化 3 6. 转化 4 7. 双指针 6 8. 关系图 8 8.1. 数组、指针和双指针关系图 8 8.2. 数组和双指针关系 阅读全文

posted @ 2019-09-05 21:24 #蓝天 阅读(1180) 评论(0) 推荐(0) 编辑

彻底理解C++指针

摘要: 目录 目录 1 1. 概念 1 1.1. 双指针 1 1.2. 指针数组 1 1.3. 数组指针 1 1.4. 常见指针定义解读 1 2. 区别 2 3. 兼容性 2 4. 为何列数须相等? 2 5. “1”的含义 3 6. 回归本质 3 7. “*”和“[]” 7 1. 概念 1.1. 双指针 指 阅读全文

posted @ 2019-09-05 21:20 #蓝天 阅读(8326) 评论(0) 推荐(0) 编辑

如何安全地使用redis的pop命令

摘要: Redis的list经常被当作队列使用,左进右出,一般生产者使用lpush压入数据,消费者调用rpop取出数据。 这是很自然的行为,然而有时会发现lpush成功,但rpop并没有取到数据,特别是一些客户端库封装了rpop操作,添加了调用者无感知的自动重试。数据凭空消失,找不到问题所在。 实际上,这是 阅读全文

posted @ 2019-09-05 14:29 #蓝天 阅读(5709) 评论(0) 推荐(0) 编辑

2019年9月4日 #

Linux OOM一二三

摘要: Linux开发一般会遇到“/proc/sys/vm/overcommit_memory”,即文件/etc/sysctl.conf中的vm.overcommit_memory,Overcommit的意思如同其字面意思,即进程可申请超出可用内存大小的内存(对进程而言实为虚拟内存,一个进程占用的虚拟内存空 阅读全文

posted @ 2019-09-04 17:21 #蓝天 阅读(477) 评论(0) 推荐(0) 编辑

2019年9月3日 #

Redis之eval+lua实现初步

摘要: 目录 目录 1 1. 前言 1 2. 执行方式 1 3. 执行过程 3 4. 使用原则 3 1. 前言 Redis的实现保证eval的执行是原子的,即使eval执行的lua超时,Redis也不会自动终止执行。 官方说明如下: When a script reaches the timeout it 阅读全文

posted @ 2019-09-03 19:51 #蓝天 阅读(3638) 评论(0) 推荐(0) 编辑

2019年9月1日 #

如何保证最少消费一次redis的list队列数据

摘要: 简使用pop,不能保证最少消费一次,比如pop超时可能中途丢失,或者消费者处理过程中异常而未能处理完。 解决此问题有多种方法: 1) 方法一:使用rpoplpush替代pop 这种方法相当于建立了一个回滚,由于操作是在redis端完成的,可保证数据不会丢,当消费者完成业务逻辑后,再清掉lpush的另 阅读全文

posted @ 2019-09-01 15:07 #蓝天 阅读(2161) 评论(0) 推荐(0) 编辑

2019年8月29日 #

如果设置Redis客户端的超时时长?

摘要: 客户端的超时时长分连接超时和读写超时,如果是基于hiredis的实现,则读写超时是合在一起的,同一参数控制。 在hiredis中,读写超时调用函数redisSetTimeout设置,可以看到没有区分读和写: int redisSetTimeout(redisContext *c, const str 阅读全文

posted @ 2019-08-29 10:02 #蓝天 阅读(18362) 评论(0) 推荐(0) 编辑

2019年6月18日 #

REdis一致性方案探讨

摘要: REdis功能强大众所周知,能够大幅简化开发和提供大并发高性能,但截止到REdis 5.0.5仍然存在如下几大问题: 1. 一致性问题 这是由于REdis的主从复制采用的是异步复制,异常时可能发生主节点的数据未能复制到从节点,导致从节点提升为主节点后缺失部分数据。虽然REdis提供WAIT命令来使得 阅读全文

posted @ 2019-06-18 14:48 #蓝天 阅读(2743) 评论(0) 推荐(0) 编辑

上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 76 下一页

导航