陈松的技术博客

阅读使人充实,会谈使人敏捷,写作使人精确

redis源码分析之内存编码分析

intset, ziplist编码分析

===================================================== redis源码学习系列文章: redis源码分析之sha1算法分析 redis源码分析之字典源码分析 redis源码分析之内存编码分析intset, ziplist编码分析 redis源码分析之跳跃表 redis源码分析之内存淘汰策略的原理分析 redis源码分析之对...

redis源码分析之内存淘汰策略的原理分析

redis的内存优化与mysql的一起使用优化方案

===================================================== redis源码学习系列文章: redis源码分析之sha1算法分析 redis源码分析之字典源码分析 redis源码分析之内存编码分析intset, ziplist编码分析 redis源码分析之跳跃表 redis源码分析之内存淘汰策略的原理分析 redis源码分析之对...

redis源码分析之sha1算法分析

sha1算法分析与hash表的生成

===================================================== redis源码学习系列文章: redis源码分析之sha1算法分析 redis源码分析之字典源码分析 redis源码分析之内存编码分析intset, ziplist编码分析 redis源码分析之跳跃表 redis源码分析之内存淘汰策略的原理分析 redis源码分析之对...

ping的原理的解析

ICMP协议, 网络工具

前言 最近和同事测试网络带宽问题, 分析网络稳定性的问题时,在网上没有找到合适工具, 我发现网上测试网络带宽的原理都是ping一样的原理就研究一下 ping工具一直是我们使用测量网络是否相通。它的应用有很多,比如我们经常测试网络的带宽,网络安全,使用ICMP攻击使服务器繁忙,DOS攻击 正文 一, ping的原理介绍 ping使用协议在网络ISO中那一层 ping使用ICMP...

MySQL的InnoDB的数据存储原理分析

MYSQL的优化原理分析

前言 正文 1, InnoDB行记录格式 InnoDB存储引擎和大多数据库一样,记录是以行的形式存储的。 这意味着页中保存着表中一行行的数据。到MySQL5.1时,InnoDB存储引擎提供了Compact和Redundant两种格式来存放行记录数据,Redundant是为兼容之前版本而保留的,如果你阅读过InnoDB的源代码,会发现源代码张红是用PHYSICAL RECORD(NEW ...

MySQL的存储引擎的使用场景分析

适用场景

前言 MySQL在我们日常开发中经常使用存储数据使用, 但是出现问题优化和存储引擎的选择适合我们实际业务场景,就要对MySQL的存储索引的原理要有所了解。 正文 一, MySQL的存储引擎介绍 ① InnoDB存储引擎 InnoDB存储引擎支持事务,主要面向在线事务处理(OLTP)方面的应用。其特点是行锁设计,支持外健,并支持类类于Oracle的非锁定读,即默认情况下读取存储不...

优雅的交流的注意点

能量的发源地-潜意识

前言 工作中要和不同人交流, 就需要如何带动周围人积极性,需要个人的领导能力和积极心态。 正文 一, 优雅的交流 交流时亲切自然,话题力求轻松活泼,是成为一个善于言辞的健谈必须修炼的第一步。发自内心的真挚, 热忱与同情心能够推动在场的所有人,也是牢牢吸引住听从的注意的最佳办法。所以,你还得富于同情心, 二, 积极的情感 欲望 信心 爱 性 热忱 ...

Libevent的事件驱动源码分析(三)

反应堆的设计

前言 网络编程使用基本都是反应堆(reactor) 著名C++标准的Boost中asio使用reactor模式, 它的io线程是安全的, libevent使用io也使用该模式 正文 一, reactor模式 1, 采用基于事件驱动的设计,当有事件触发时,才会调用处理器进行数据处理。 Reactor:负责响应IO事件,当检测到一个新的事件,将其发送给相应的Handler去处理。...

Libevent的事件驱动源码分析(二)

多线程支持

前言 libevent线程是不安全的, 现在服务器都是多核的如何充分使用cpu就要使用多线程。 正文 一, 谈谈libevent如何使用多线程呢 我们在上学的时候, 经常去学校的食堂吃饭。 有几种情况 1, 一个窗口排队等待打饭 一个窗口就相当于我们网络中io单线程的处理, 不会出现惊群效应(linux 3.0+ epoll这个问题已经解决了) ,这个效率会比较底下, 学生排队的...

Libevent的事件驱动源码分析(一)

事件驱动源码分析

前言 Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD 和 Mac Os;支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqu...