自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 红黑树知识介绍

1.红黑树介绍红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的“红黑树”。红黑树和AVL树类似,...

2018-05-31 16:35:13 183

原创 单链表逆序

ListNode* ReverseList(ListNode* head){ if(NULL == head || NULL == head->next) return head; ListNode* pnext = head->next; head->next = NULL; ListNode* newhead = ReverseList(pnext)...

2018-05-17 16:28:42 205

原创 net.ipv4.tcp_timestamps引发的tcp syn无响应案

    在我目前一个高并发的项目中,一度出现服务器不再响应任何TCP的syn请求,新的客户端死活介入不了服务。出现该状态之前由于并发亮的增加,曾经优化过服务器,主要是将TIME-WAIT sockets重新用于新的TCP连接,优化如下:1.修改/ect/sysctl.confnet.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4...

2018-05-17 16:00:55 20076 1

原创 优化--单台服务器支持百万级别tcp长连接

如何在单台服务器上实现百万级长连接,以下是实现该目标进行的一些优化:1.首先需要准备一台大内存的服务器,装上linux系统,比如rehat、centos(内核版本在2.6.25之上)等。    为什么需要大内存,因为每个连接都需要有读写缓存,具体看第二部内容;    为什么内核版本要在2.6.25之上,因为2.6.25内核之前有个 宏定义,定义了最大文件描述符大小为1024*1024,正好是100...

2018-05-17 11:50:28 5367 1

转载 分布式系统一致性原理与解决方案(ACID、CAP、BASE)

1 背景一致性是一个抽象的、具有多重含义的计算机术语,在不同应用场景下,有不同的定义和含义。在传统的IT时代,一致性通常指强一致性,强一致性通常体现在你中有我、我中有你、浑然一体;而在互联网时代,一致性的含义远远超出了它原有的含义,在我们讨论互联网时代的一致性之前,我们先了解一下互联网时代的特点,互联网时代信息量巨大、需要计算能力巨大,不但对用户响应速度要求快,而且吞吐量指标也要向外扩展(既:水平...

2018-05-17 10:45:25 1156

转载 从分布式一致性谈到CAP理论、BASE理论

问题的提出在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景。1、火车站售票假如说我们的终端用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车票,然后拿着车票去检票口,再坐上火车,开始一段美好的旅行----一切似乎都是那么和谐。想象一下,如果他选择的目的地是杭州,而某一趟开往杭州的火车只剩下最后一张车票,可能在同一时刻,不同售票窗口的另一位乘客也购买了...

2018-05-17 10:10:58 190

原创 mysql常用命令

归档记录/*查找表中符合条件的所有记录*/SELECT * FROM my_test WHERE name='test'/*查找表中符合条件的并且name字段不重复的所有记录数*/SELECT COUNT(DISTINCT name) FROM my_testWHERE starttime>='2018-05-09 00:00:00' AND endtime<='2018-05-09...

2018-05-16 16:56:02 152

原创 python操作mongo数据库

归档写过的python进行mongo数据库操作的code# -*- coding: utf-8 -*-#!/usr/bin/python"""Spyder EditorThis is a temporary script file."""import osimport reimport sysimport jsonimport pymongoimport timeimp...

2018-05-16 16:03:38 230

原创 python操作mysql,递归读取目录下文件

import osimport reimport timeimport datetimeimport MySQLdbc08imeimap={}c08online1minuser={}c08online5minuser={}c08online10minuser={}onlinenumperhour={'00':{},'01':{},'02':{},'03':{},'04':...

2018-05-16 15:59:14 307

原创 重建二叉树

给出某二叉树的前序遍历和中序遍历的序列,请重建出该二叉树:    根据二叉树的前序遍历的特性,每次读取的第一个值一定是根节点,这样我们可以在中序遍历的序列中找到当前的根节点的位置。该位置左边的就是该树的左子树,右边的就是右子树了。    因此,我们每次都需要在前序遍历中找根节点并创建一个根节点,然后在中序遍历中确定根节点位置,并确定当前根节点的左右子树,然后以同样的方法去构建左右子树。这整个过程其...

2018-05-16 15:11:33 126

原创 memcpy

memcpy存在两种情况的拷贝 一种是由内存覆盖,另一种是无内存覆盖针对内存覆盖情况,只有一下一种需要从后往前拷贝:dst < src + len && dst > src不多说直接上代码:#include <stdio.h>  #include<string.h>  #include <assert.h>  void* my_mem...

2018-05-16 11:19:14 723

原创 select、poll以及epoll介绍以及区别

IO多路复用机制有select,poll,epoll三种,所谓I/O多路复用就是通过某种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。本质上select,poll,epoll都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,异步I/O的实现会负责把数据从内核拷贝到用户空间。    select是几...

2018-05-16 10:54:41 240

原创 udp使用connect建立连接与普通udp连接区别

    UDP中connect操作与TCP中connect操作有着本质区别.TCP中调用connect会引起三次握手,client与server建立连结.UDP中调用connect内核仅仅把对端ip&port记录下来使用connect建立的udp连接相比于普通udp连接有两个优势:一: 提高发送效率1.在普通udp连接上发送两个报文,在内核操作如下:        a) 建立连接;b)发送...

2018-05-15 11:36:02 8975

转载 tcp流控与拥塞

                                                                                  TCP的流量控制和拥塞控制一、TCP的流量控制1. 利用滑动窗口实现流量控制    如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。    利用...

2018-05-15 11:20:26 369

转载 智能指针

《C++ Primer Plus》第六版,这本书中关于智能指针的章节解析的非常清晰,记录一下,有哪些智能指针?其设计原理是什么?自己怎么设计一个智能指针?而且在看开源的C++项目时,也能随处看到智能指针的影子。智能指针背后的设计思想void remodel(std::string & str){ std::string * ps = new std::string(str); ...

2018-05-14 15:14:20 115

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除