<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[四年]]></title><description><![CDATA[hello darkness, my old friend]]></description><link>https://blog.youkuaiyun.com/ws891033655</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ws891033655]]></copyright><item><title><![CDATA[微信红包实现原理]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/45502179</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/45502179</guid><author>ws891033655</author><pubDate>Tue, 05 May 2015 14:37:04 +0800</pubDate><description><![CDATA[微信红包实现原理
以下内容来源于QCon某高可用架构群聊天记录整理 背景：有某个朋友咨询微信红包的架构，在官方或非官方同学的解释和讨论中得出以下讨论内容，在此期间有多个同学发红包做现网算法测试。
抢红包过程
当有人在群里发了一个N人的红包，总金额M元，后台大概发生的事情如下：
一、发红包后台操作：

在数据库中增加一条红包记录，存储到CKV，设置过期时间；在Cache（可能是腾讯内部k]]></description><category></category></item><item><title><![CDATA[共享内存原理]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/43989285</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/43989285</guid><author>ws891033655</author><pubDate>Wed, 08 Apr 2015 22:54:12 +0800</pubDate><description><![CDATA[共享内存区域是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间，则这些进程就都可以直接访问该共享内存区域，从而可以通过该区域进行通信。共享内存是进程间共享数据的一种最快的方法，一个进程向共享内存区域写入了数据，共享这个内存区域的所有进程就可以立刻看到其中的内容。这块共享虚拟内存的页面，出现在每一个共享该页面的进程的页表中。但是它不需要在所有进程的虚拟内存中都有相同]]></description><category></category></item><item><title><![CDATA[深入理解Redis中的主键失效及其实现机制]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/44022315</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/44022315</guid><author>ws891033655</author><pubDate>Wed, 08 Apr 2015 22:51:25 +0800</pubDate><description><![CDATA[作为一种定期清理无效数据的重要机制，主键失效存在于大多数缓存系统中，Reids也不例外。在Redis提供的诸多命令中，EXPIRE、EXPIREAT、PEXPIRE、PEXPIREAT以及SETEX和PSETEX均可以用来设置一条Key-Value对的失效时间，而一条Key-Value对一旦被关联了失效时间就会在到期后自动删除（或者说变得无法访问更为准确）。可以说，主键失效这个概念还是比较容易理解]]></description><category></category></item><item><title><![CDATA[Buffer和Cache的区别(转)]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/44280189</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/44280189</guid><author>ws891033655</author><pubDate>Wed, 08 Apr 2015 22:50:45 +0800</pubDate><description><![CDATA[今天, 又在公司内听到大家争论 Buffer 与 Cache的差异了, 虽然差不多1个月前, 我们就已经在群组里面进行过激烈的争论, 我在网上搜索了下, buffer 与 Cache 区别, 找到下面这个链接, 给出的解释比较接近为维基百科上的说法,
 抄录如下, 以为记.
什么是Cache？ 什么是Buffer？ 二者的区别是什么？
http://wenda.tianya.cn/wenda]]></description><category></category></item><item><title><![CDATA[UNIX环境高级编程（十）信号]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/27101555</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/27101555</guid><author>ws891033655</author><pubDate>Wed, 08 Apr 2015 22:48:20 +0800</pubDate><description><![CDATA[10.2信号概念
产生信号的条件：
1.当用户按某些终端键shi]]></description><category></category></item><item><title><![CDATA[关于中断上下文为什么不能睡眠？]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/44948257</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/44948257</guid><author>ws891033655</author><pubDate>Wed, 08 Apr 2015 22:46:14 +0800</pubDate><description><![CDATA[这个问题有很多人问过，我看了下Linux得内核代码，原因如下：（当然我不能保证一定对,如果有牛人理解得更好，欢迎指正）

1、 中断处理的时候,不应该发生进程切换，因为在中断context中，唯一能打断当前中断handler的只有更高优先级的中断，它不会被进程打断，如果在 中断context中休眠，则没有办法唤醒它，因为所有的wake_up_xxx都是针对某个进程而言的，而在中断context]]></description><category></category></item><item><title><![CDATA[malloc原理]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/43927999</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/43927999</guid><author>ws891033655</author><pubDate>Tue, 24 Feb 2015 23:00:34 +0800</pubDate><description><![CDATA[如何查看进程发生缺页中断的次数？

         用ps -o majflt,minflt -C program命令查看。

          majflt代表major fault，中文名叫大错误，minflt代表minor fault，中文名叫小错误。

          这两个数值表示一个进程自启动以来所发生的缺页中断的次数。

发成缺页中断后，执行了那些操作？]]></description><category></category></item><item><title><![CDATA[Linux vmstat命令实战详解]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/43919585</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/43919585</guid><author>ws891033655</author><pubDate>Mon, 23 Feb 2015 22:55:52 +0800</pubDate><description><![CDATA[vmstat命令是最常见的Linux/Unix监控工具，可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率，内存使用，虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令，一个是Linux/Unix都支持，二是相比top，我可以看到整个机器的CPU,内存,IO的使用情况，而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。
一般vmstat]]></description><category></category></item><item><title><![CDATA[平均负载]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/43918695</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/43918695</guid><author>ws891033655</author><pubDate>Mon, 23 Feb 2015 22:16:27 +0800</pubDate><description><![CDATA[有时候我们会觉得系统响应很慢，但是又找不到原因，这时就要查平均负载了，看它是否有大量的进程在排队等待。
查看Linux系统的平均负载
1.平均负载的概念
有时候我们会觉得系统响应很慢，但是又找不到原因，这时就要查平均负载了，看它是否有大量的进程在排队等待。特定的时间间隔内运行队列中的平均进程数可以反映系统的繁忙程度，所以我们通常会在自己的网站或系统变慢时第一时间查系统的负载，即CPU的平均负]]></description><category></category></item><item><title><![CDATA[服务端为什么需要心跳(保活)机制]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/43883321</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/43883321</guid><author>ws891033655</author><pubDate>Thu, 19 Feb 2015 19:55:21 +0800</pubDate><description><![CDATA[如果没有特意的设置某些选项或者实现应用层心跳包，TCP空闲的时候是不会发送任何数据包。也就是说，当一个TCP的socket，客户端与服务端谁也不发送数据，会一直保持着连接。这其中如果有一方异常掉线（例如死机、路由被破坏、防火墙切断连接等），另一端如果没有发送数据，永远也不可能知道。这对于一些服务型的程序来说，是灾难性的后果，将会导致服务端socket资源耗尽。
  所以为了保证连接的有效性、及时]]></description><category></category></item><item><title><![CDATA[sdt:bind用法]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/43853397</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/43853397</guid><author>ws891033655</author><pubDate>Mon, 16 Feb 2015 17:57:26 +0800</pubDate><description><![CDATA[bind - boost
头文件: boost/bind.hpp
bind 是一组重载的函数模板.
用来向一个函数(或函数对象)绑定某些参数. 
bind的返回值是一个函数对象. 
它的源文件太长了. 看不下去. 这里只记下它的用法: 
9.1 对于普通函数
假如有函数 fun() 如下: 
 void fun(int x, int y) {
  cout 
 }
现在我们看]]></description><category></category></item><item><title><![CDATA[并发和并行]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/42062621</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/42062621</guid><author>ws891033655</author><pubDate>Sun, 21 Dec 2014 19:28:31 +0800</pubDate><description><![CDATA[并发和并行的区别：一个处理器同时处理多个任务和多个处理器或者是多核的处理器同时处理多个不同的任务。

并发和并行的区别就是一个处理器同时处理多个任务和多个处理器或者是多核的处理器同时处理多个不同的任务。
前者是逻辑上的同时发生（simultaneous），而后者是物理上的同时发生．
并发性(concurrency)，又称共行性，是指能处理多个同时性活动的能力，并发事件之间不一定要同一时刻发]]></description><category></category></item><item><title><![CDATA[闭包]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/40865603</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/40865603</guid><author>ws891033655</author><pubDate>Thu, 06 Nov 2014 18:41:17 +0800</pubDate><description><![CDATA[在函数编程中经常用到闭包。闭包是什么，它是怎么产生的及用来解决什么问题呢。给出字面的定义先：闭包是由函数及其相关的引用环境组合而成的实体(即：闭包=函数+引用环境)。这个从字面上很难理解，特别对于一直使用命令式语言进行编程的程序员们。本文将结合实例代码进行解释。
函数是什么
地球人都知道：函数只是一段可执行代码，编译后就“固化”了，每个函数在内存中只有一份实例，得到函数的入口点便可以执行函数了]]></description><category></category></item><item><title><![CDATA[正向代理和反向代理]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/40833941</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/40833941</guid><author>ws891033655</author><pubDate>Wed, 05 Nov 2014 22:25:09 +0800</pubDate><description><![CDATA[代理服务器的作用主要是将客户端的qi]]></description><category></category></item><item><title><![CDATA[tbnet源码]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/40713091</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/40713091</guid><author>ws891033655</author><pubDate>Sun, 02 Nov 2014 19:37:25 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[IT博客]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/40709349</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/40709349</guid><author>ws891033655</author><pubDate>Sun, 02 Nov 2014 14:24:09 +0800</pubDate><description><![CDATA[团队技术博客

淘宝UED淘宝用户体验团队淘宝核心系统淘宝核心系统团队博客阿里巴巴数据库团队专注数据库管理开发运维淘宝通用产品专注JAVA技术淘宝QA致力于做测试的行业标准淘宝搜索技术关注技术 关注搜索量子恒道专注大数据统计百度搜索研发关注搜索相关技术EMC中国研究院关注于云计算和大数据贰号楼肆层阿里巴巴平台技术部阿里数据平台阿里巴巴数据平台百度技术分享交流百度的互联网技术编码者说腾讯滴技术团]]></description><category></category></item><item><title><![CDATA[enable_shared_from_this实现分析]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/40558837</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/40558837</guid><author>ws891033655</author><pubDate>Tue, 28 Oct 2014 22:18:02 +0800</pubDate><description><![CDATA[使用情景：当类对象被 shared_ptr 管理时，需要在类自己定义的函数里把当前类对象作为参数传给其他函数时，这时需要传递一个 shared_ptr ，否则就不能保持 shared_ptr 管理这个类对象的语义（因为有一个
 raw pointer 指向这个类对象，而 shared_ptr 对类对象的这个引用没有计数，很有可能 shared_ptr 已经把类对象资源释放了，而那个调用函数还在使]]></description><category></category></item><item><title><![CDATA[std::tr1::function]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/40381953</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/40381953</guid><author>ws891033655</author><pubDate>Wed, 22 Oct 2014 20:26:53 +0800</pubDate><description><![CDATA[使用std::tr1::function对象代替虑函数
在 C++的TR1中(Technology Report)中包含一个function模板类和bind模板函数，使用它们可以实现类似函数指针的功能，但却却比函数指针更加灵活，特别是函数指向类的非静态成员函数时。可以参考Scott Meyers. >. Item 35.下面具体说明其使用方法。


1. 指向全局函数或静态成员函数时
]]></description><category></category></item><item><title><![CDATA[Redis 数据淘汰策略]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/39894717</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/39894717</guid><author>ws891033655</author><pubDate>Wed, 08 Oct 2014 15:51:31 +0800</pubDate><description><![CDATA[在 redis 中，允许用户设置最大使用内存大小 server.maxmemory，redis 内存数据集大小达到设置的最大使用内存大小后，就会施行数据淘汰策略。redis 提供 6种数据淘汰策：  # MAXMEMORY POLICY: how Redis will select what to remove when maxmemory    # is reached? You can sel]]></description><category></category></item><item><title><![CDATA[Redis 主从复制]]></title><link>https://blog.youkuaiyun.com/ws891033655/article/details/39834457</link><guid>https://blog.youkuaiyun.com/ws891033655/article/details/39834457</guid><author>ws891033655</author><pubDate>Mon, 06 Oct 2014 22:43:56 +0800</pubDate><description><![CDATA[Redis 支持简单且易用的主从复制（master-slave replication）功能，该功能可以让从服务器 (slave server)成为主服务器 (master server) 的精确复制品    以下是关于 Redis 复制功能的几个重要方面：     • Redis 使用异步复制。从 Redis 2.8 开始，从服务器会以每秒一次的频率向主服务器报告复制流（replication ]]></description><category></category></item></channel></rss>