w
h
y
?
y
o
u
a
r
e
h
e
r
e
?
亮
gdb单步调试原来服务的的启动方式123/data/home/2333/xx/matchsvr/bin/matchsvr --noloadconf --conf-file=../conf/matchsvr_conf.xml --log-file=../log --tlogconf=../co
...
消息队列的特征消息队列在存取消息时,必须要满足三个需求,分别是
消息保序
处理重复的消息
保证消息可靠性
消息保序对于 单队列,单进程的queue, 是满足先入先出的特点的,本身是有序的,但是如果有多个队列或多个消费者线程的时候,可能会产生乱序的问题。
kafka的例子:
stream的缺点
...
redis数据冗余与分片数据冗余-主从复制Redis 提供了主从库模式,以保证数据副本的一致,主从库之间采用的是读写分离的方式。
读操作:主库、从库都可以接收;
写操作:首先到主库执行,然后,主库将写操作同步给从库。
主从库间如何进行第一次同步?1replicaof 172.16.19.3
...
AOF 机制 (Append Only File)
flush时间配置AOF 配置项 appendfsync 的三个可选值:
Always,同步写回:每个写命令执行完,立马同步地将日志写回磁盘;
Everysec,每秒写回:每个写命令执行完,只是先把日志写到 AOF 文件的内存缓冲区,每隔一秒把缓
...
如果你只是急于解决太多细微的问题,能力就很难得到质的提升Redis 学习的路线
底层数据结构基础数据结构
key-value的管理方式
如果哈希表里写入的数据越来越多,哈希冲突可能也会越来越多,这就会导致某些哈希冲突链过长,进而导致这个链上的元素查找耗时长,效率降低。Redis 默认使用了两个全局哈
...
引入的原子指令SSE2 extensions introduce two new fence instructions (LFENCE and MFENCE) as companions to the SFENCE instruction introduced with SSE extensions
...
IntroductionC ++ 11引入了lambda,该lambda提供了一种语法上轻量级的方式来动态定义函数。它们还可以通过值或引用来捕获(或封闭)周围范围的变量。在本文中,我们将研究lambda与纯函数和函子类(实现的类)在实现方面的区别operator()。
Capture By Valu
...
transaction事务是一个抽象层,允许应用程序假装某些并发问题和某些类型的硬件和软件故障不存在。各式各样的错误被简化为一种简单情况:事务中止(transaction abort),而应用需要的仅仅是重试。
如果没有事务处理,各种错误情况(进程崩溃,网络中断,停电,磁盘已满,意外并发等)意味着数
...
一句话概述std::move本身只做类型转换,对性能无影响。我们可以在自己的类中实现移动语义,避免深拷贝,充分利用右值引用和std::move的语言特性。
移动语义目的就是用浅拷贝代替深拷贝,右值引用跟深拷贝放到同一场景才是有意义的。
实现移动语义在没有右值引用之前,一个简单的数组类通常实现如下,有
...