Golang入门指南


  • 首页

  • todo

  • 思考

  • life

  • food

  • OS

  • lua

  • redis

  • Golang

  • C

  • TCP/IP

  • ebpf

  • p4

  • OpenVPN

  • IPSec

  • L2TP

  • DNS

  • distributed

  • web

  • OpenWRT

  • 运维

  • Git

  • 鸟哥的私房菜

  • IT杂谈

  • 投资

  • About Me

  • 友情链接

  • FTP

  • 搜索
close

under the hood

时间: 2021-09-01   |   分类: redis     |   阅读: 3752 字 ~18分钟

by Paul Smith (@paulsmith)

Redis logo

How does the Redis server work?

I was curious to learn more about Redis’s internals, so I’ve been familiarizing myself with the source, largely by reading and jumping around in Emacs. After I had peeled back enough of the onion’s layers, I realized I was trying to keep track of too many details in my head, and it wasn’t clear how it all hung together. I decided to write out in narrative form how an instance of the Redis server starts up and initializes itself, and how it handles the request/response cycle with a client, as a way of explaining it to myself, hopefully in a clear fashion. Luckily, Redis has a nice, clean code base that is easy to read and follow along. Armed with a TAGS file, my $EDITOR, and GDB, I set out to see how it all works under the hood. (Incidentally, I was working with the Redis code base as of commit b4f2e41. Of course, internals such as I outline below are subject to change. However, the broad architecture of the server is unlikely to change very much, and I tried to keep that in mind as I went along.)

阅读全文 »

深入理解Linux IO模型(二)

时间: 2021-08-26   |   分类: os   cs     |   阅读: 5457 字 ~11分钟

深入理解Linux IO模型(二)

原创 Pearl Pearl的仲夏夜之梦 6月13日

为何使用epollselect的缺陷epoll的提出epoll的原理数据结构实现原理高效原因epoll的API创建epoll控制epoll等待epoll使用epoll API触发方式水平触发(Level Triggered, LT)边缘触发(Edge Triggered, ET)两者对比Reference

阅读全文 »

深入理解Linux IO模型(一)

时间: 2021-08-26   |   分类: os   cs     |   阅读: 9420 字 ~19分钟

深入理解Linux IO模型(一)

原创 Pearl Pearl的仲夏夜之梦 6月12日

Linux IO模型是后端工程师的必备技能。从以往的面试中看,部分后端开发人员对它的理解停留在调API的层面,我自己也理解欠缺。最近系统学习了一下,整理了此文。本文参考了一些文章,放在本文最后,大家可以直接去看这些文章,值得阅读。

阅读全文 »

Redis的47连环炮,试试你能看住几个 -面前复习

时间: 2021-08-26   |   分类: redis   db   cs   面试     |   阅读: 16255 字 ~33分钟

写在前面

大家好,我是老田,前面我们已经分享了五篇连环炮文章,今天我们继续。今天我们接着来聊聊Redis。Redis已经成为我们开发者必备技能之一了,同时面试也是必问的。下面就来对Redis进行一个总结,然后赠送43连环炮。

阅读全文 »

redis基础数据结构skiplist

时间: 2021-08-25   |   分类: redis     |   阅读: 3617 字 ~8分钟

以下内容转载自csdn-Knight0xffff

太长不看版

  • 跳跃表是有序集合的底层实现之一, 除此之外它在 Redis 中没有其他应用。
  • 每个跳跃表节点的层高都是 1 至 64 之间的随机数
  • 层高越高出现的概率越低,层高为i的概率为( 1 − p ) ∗ p i − 1 , ( p = 1 / 4 ) (1-p) * p^{i-1}, (p=1/4)(1−p)∗p**i−1,(p=1/4)。
  • 跳跃表中,分值可以重复, 但对象成员唯一。分值相同时,节点按照成员对象的大小进行排序。

本篇解析基于redis 5.0.0版本,本篇涉及源码文件为t_zset.c, server.h。

阅读全文 »

操作系统基础56-磁盘调度算法

时间: 2021-08-25   |   分类: os   cs     |   阅读: 3188 字 ~7分钟

操作系统基础56-磁盘调度算法

2021-02-08 02:15·重学IT的老猫

操作系统的职责之一是有效使用硬件。对于磁盘驱动器,满足这个要求具有较快的访问速度和较宽的磁盘带宽。 对于磁盘,访问时间包括两个主要部分:

阅读全文 »

操作系统基础55-磁盘冗余阵列RAID

时间: 2021-08-25   |   分类: os   cs     |   阅读: 6935 字 ~14分钟

操作系统基础55-磁盘冗余阵列RAID

2021-02-07 01:17·重学IT的老猫

磁盘驱动器继续变得更小更便宜,如今在一台计算机系统上连接许多磁盘从经济上来说已经可行了。一个系统拥有大量磁盘,就有机会改善数据的读写速率,因为磁盘操作可以并行进行。此外,这种设置提供能力,以提高数据存储的可靠性,因为冗佘信息可以存储在多 个磁盘上。因此,单个磁盘的故障不会导致数据丢失。 多种磁盘组织技术统称为磁盘冗余阵列(RAID)技术,通常用于处理性能与可靠性问题。过去,RAID是由小且便宜的磁盘组成,可作为大且昂贵的磁盘的有效替代品。现在,RAID的使用主要是因为高可靠性和高数据传输率,而不是经济原因。因此,RAID中的 I 表示“独立”(independent)而不是“廉价”(inexpensive)。

阅读全文 »

操作系统基础54-磁盘管理

时间: 2021-08-25   |   分类: os   cs     |   阅读: 2916 字 ~6分钟

操作系统基础54-磁盘管理

2021-02-06 01:09·重学IT的老猫

操作系统还负责磁盘管理的其他几个方面。本节讨论磁盘初始化、磁盘引导、坏块恢复等。

磁盘格式化

一个新的磁盘是一个空白盘,它只是一个磁性记录材料的盘子。在磁盘可以存储数据之前,它必须分成扇区,以便磁盘控制器能够读写,这个过程称为低级格式化或物理格式化。 低级格式化为每个扇区使用特殊的数据结构,填充磁盘。每个扇区的数据结构通常由头部、数据区域(通常为512字节大小)和尾部组成。头部和尾部包含了一些磁盘控制器的使用信息,如扇区号和纠错代码(ECC)。 当控制器通过正常I/O写入一个扇区的数据时,ECC采用根据数据区域所有字节而计算的新值来加以更新。在读取一个扇区时,ECC值会重新计算,并与原来存储的值相比较,如果存储和计算的数值不一样,则表示扇区数据区已损坏,并且磁盘扇区可能已坏。 ECC是纠错代码,因为它有足够的信息,以便在只有少数数据损坏时,控制器能够识别哪些位已经改变,并且计算它们的正确值应该是什么。然后它会报告可恢复的软错误。当读或写一个扇区时,控制器自动进行ECC处理。 大多数磁盘在工厂时作为制造过程的一部分就已低级格式化。这种格式化能让制造商测试磁盘,并且初始化逻辑块号到无损磁盘扇区的映射。对于许多磁盘,当磁盘控制器低级格式化磁盘时,还能指定在头部和尾部之间留下多长的数据区。通常有几个选择,如256、512和1024字节等。采用较大扇区来低级格式化磁盘,意味着每个磁道的扇区数会更少,但也意味着每个磁道的头部和尾部信息会更少,用户数据的可用空间会更多。有的操作系统只能处理512字节的扇区大小。 在可以使用磁盘存储文件之前,操作系统仍然需要将自己的数据结构记录在磁盘上。这分为两步:

阅读全文 »
44 45 46 47 48 49 50 51 52

日志
分类
标签
RSS 订阅
GitHub
© 2009 - 2025
粤ICP备2021068940号-1 粤公网安备44011302003059
0%