- 博客(7)
- 收藏
- 关注
转载 extern “C”的含义 和 __stdcall/__cdecl的区别
由extern "C"引申出C++、C动态库调用的一些注意事项 extern "C"和__stdcall/__cdecl这两个概念都是C和C++语言混用时需要关注的。extern "C"是代码段的修饰, 既可以单独对函数进行修饰也可以放在代码片段前对整段代码进行修饰;是告知编译器接下来的代码中所有的函数名要以C语言的方式进行解析;_stdcall和_cdecl则是对函数名进行修饰,...
2019-05-05 21:01:00
480
转载 Redis源码阅读(六)集群-故障迁移(下)
Redis源码阅读(六)集群-故障迁移(下) 最近私人的事情比较多,没有抽出时间来整理博客。书接上文,上一篇里总结了Redis故障迁移的几个关键点,以及Redis中故障检测的实现。本篇主要介绍集群检测到某主节点下线后,是如何选举新的主节点的。注意到Redis集群是无中心的,那么使用分布式一致性的算法来使集群中各节点能对在新主节点的选举上达成共识就是一个比较可行的方案。 ...
2018-11-11 23:10:00
371
转载 Redis源码阅读(五)集群-故障迁移(上)
Redis源码阅读(五)集群-故障迁移(上) 故障迁移是集群非常重要的功能;直白的说就是在集群中部分节点失效时,能将失效节点负责的键值对迁移到其他节点上,从而保证整个集群系统在部分节点失效后没有丢失数据,仍能正常提供服务。这里先抛开Redis实际的做法,我们可以自己想下对于Redis集群应该怎么做故障迁移,哪些关键点是必须要实现的。然后再去看Redis源码中具体的实...
2018-10-07 21:11:00
234
转载 Redis源码阅读(四)集群-请求分配
Redis源码阅读(四)集群-请求分配 集群搭建好之后,用户发送的命令请求可以被分配到不同的节点去处理。那Redis对命令请求分配的依据是什么?如果节点数量有变动,命令又是如何重新分配的,重分配的过程是否会阻塞对外提供的服务?接下来会从这两个问题入手,分析Redis3.0的源码实现。1. 分配依据——槽 Redis将每个客户端的请求命令通过哈希的方式映射到槽上,...
2018-09-14 01:13:00
622
转载 Redis源码阅读(三)集群-连接初始化
Redis源码阅读(三)集群-连接建立 对于并发请求很高的生产环境,单个Redis满足不了性能要求,通常都会配置Redis集群来提高服务性能。3.0之后的Redis支持了集群模式。 Redis官方提供的集群功能是无中心的,命令请求可以发送到任意一个Redis节点,如果该请求的key不是由该节点负责处理,则会返回给客户端MOVED错误,提示客户端需要转向到该key对应的处...
2018-08-31 00:40:00
254
转载 Redis源码阅读(二)高可用设计——复制
Redis源码阅读(二)高可用设计-复制复制的概念:Redis的复制简单理解就是一个Redis服务器从另一台Redis服务器复制所有的Redis数据库数据,能保持两台Redis服务器的数据库数据一致。使用场景:复制机制很实用,在客户端并发访问量很大,单台Redis扛不住的情况下,可以部署多台Redis复制相同的数据,共同对外提供服务,提高Redis并发访问处理能力。当然这种通过复...
2018-08-16 23:52:00
135
转载 Redis源码阅读(一)事件机制
Redis源码阅读(一)事件机制 Redis作为一款NoSQL非关系内存数据库,具有很高的读写性能,且原生支持的数据类型丰富,被广泛的作为缓存、分布式数据库、消息队列等应用。此外Redis还有许多高可用特性,包括数据持久化,主从模式备份等等,可以满足对数据完整性有一定要求的场景。 Redis的源码结构简单清晰,有大量材料可以参阅;通过阅读Redis源码,掌握一些常用技术在Re...
2018-08-05 14:57:00
187
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人