链表

redis list结构

一个功能肯定有其应用场景: PUSH和POP操作,其实是队列的基本操作。Redis的list就是一个极其强大的队列系统。我们在哪些地方会用到队列呢?下面,我们说两个例子: a,评论系统 逛过微博的筒子们应该都对评论系统有了解。我们在看完一条微博之后,常常会评论一番,或者看看其他人的吐槽。每条评论的记录都是按照时间顺序排序的。我们读的时候也是这个顺序。这时,...

python实现一个无序单链表

class Node: """先定一个node的类""" def __init__(self, value=None, next=None): self.value = value self.next = next def getValue(self): return self.v...

从网络I/O模型到Netty,先深入了解下I/O多路复用

微信搜索【阿丸笔记】,关注Java/MySQL/中间件各系列原创实战笔记,干货满满。 本文是Netty系列第3篇 上一篇文章我们了解了Unix标准的5种网络I/O模型,知道了它们的核心区别与各自的优缺点。尤其是I/O多路复用模型,在高并发场景下,有着非常好的优势。而Netty也采用了I/O多路复用模型。 那Netty是如何实现I/O多路复用的呢? Nett...

Linux内存管理原理

本文以32位机器为准,串讲一些内存管理的知识点。 1. 虚拟地址、物理地址、逻辑地址、线性地址 虚拟地址又叫线性地址。linux没有采用分段机制,所以逻辑地址和虚拟地址(线性地址)(在用户态,内核态逻辑地址专指下文说的线性偏移前的地址)是一个概念。物理地址自不必提。内核的虚拟地址和物理地址,大部分只差一个线性偏移量。用户空间的虚拟地址和物理地址则采用了多级...

LRU缓存及其实现

缓存是我们日常开发中来提高性能最直接的方式,经常会听到有人说:性能不行?是因为你没加缓存!常见的缓存有外部缓存服务以及程序内部缓存,外部缓存服务包括:Redis、Memcached等,内部缓存就是我们可以在程序内使用类似HashMap这种方式来建立缓存,另外比如Web中常见的cdn静态资源缓存等也属于缓存,以及我们计算机中的CPU缓存,文件系统缓存等都不约...

Python列表操作与深浅拷贝(5)——数字处理函数、类型判断、列表链表队列栈

python内建数据结构 分类 数值型:  int  float  complex  bool 序列对象: 字符串str  列表list  元组tuple 键值对:  集合set  字典dict 数值型 (list float complex bool都是class) int:python3 中 int 就是长整型,没有大小限制 float:支持十进制和科...

执行程序的内存分布总结

以下内容为各方资料汇总 所以逻辑顺序不大清晰 一般认为在c中分为这几个存储区:     1. 栈--有编译器自动分配释放         2. 堆--一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收         3. 全局区(静态区)-- 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的...

InnoDB存储引擎的记录格式,数据页的结构

  InnoDB是存储引擎,负责将磁盘的数据按照我们的逻辑概念“表”那样存取,这里首先总结下表中每一行数据是以何种形式被InnoDB存储再磁盘的。InnoDB的行记录存储形式有很多种,compact、dynamic、redundant、compressed等。下面介绍compact格式的行数据结构: 每一行的数据组成   除了我们自己的真实数据外,为了提高...

.net系统自学笔记——集合

集合 List<T>是与数组相当的集合类,还有其他类型的集合:队列,栈,链表,和字典 一、集合接口和类型 大多数集合类都可在System.Collections和 System.Collections.Generic名称空间中找到。泛型集 合类位于System.Collections.Generic名称空间中:专用于特定类型的集合类位于Syst...

11 libubox

1 libubox 主要提供事件循环,二进制块格式处理、linux链表实现和一些JSON辅助主要包含3个软件包:libubox、jshn、libblobmsg-json 1.1 libubox 1、提供多种基础通用功能接口。如:链表、平衡二叉树、二进制块处理、MD5等2、提供多种sock接口封装3、提供事件驱动机制及任务管理功能 utils.h...