Redis LRU淘汰策略Redis LRU淘汰策略Redis会删除过期键以释放空间,过期键的删除策略有两种: 惰性删除:每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键 定期删除:每隔一段时间,程序就对数据库进行2022-02-01 RedisRedis
RabbitMQ 学习RabbitMQ 高级消息队列(Advanced Message Queuing)模型,RabbitMQ 实现了 AMQP 协议 RabbitMQ概念Broker机节点,中文翻译是代理/中介,因为 MQ 服务器帮助我们做的事 情就是存储2022-01-10 消息中间件RabbitMQ
Golang Patch 实现Golang单元测试 Mock本文转自https://bou.ke/blog/monkey-patching-in-go/ 前提使用go build -gcflags=-l来构建,禁用内联。对于本文,假设架构是 64 位,并且使用的是基于 Unix 的操作系统,如 Ma2022-01-05 GolangGolang
P2P技术与NAT穿越P2P技术与NAT穿越 P2P即点对点通信,或称为对等联网,与传统的服务器客户端模式有着明显的区别,在即时通讯方案中应用广泛(比如IM应用中的实时音视频通信、实时文件传输甚至文字聊天等) NAT技术和P2P技术作为经典的两项网络技术,在现2021-12-27 NetworkNAT P2P
Redis 数据结构底层实现Redis 数据结构底层实现 String 如果一个字符串对象保存的是整数值,并且这个整数值可以用long类型来表示,那么字符串对象会将整数值保存在字符串对象结构的ptr属性里面(将 void* 转换成 long ),并将字符串对象的编2021-12-23 RedisRedis
linux Uboot简介 Uboot 属于bootloader的一种,是用来引导启动内核的,它的最终目的就是,从flash中读出内核,放到内存中,启动内核,需要具有读写flash的能力 Flash flash是存储芯片的一种,通过特定的程序可以修改里面2021-11-21 LinuxLinux
读《凤凰架构》笔记,持续记录中架构演进 大型机(Mainframe) 原始分布式(Distributed) 大型单体(Monolithic) 面向服务(Service Oriented) 微服务(Microservice) 服务网格(Service Mesh) 无服务(2021-11-01 架构架构
linux Swap管理简介 当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况 SWAP意思是交换,顾名思义,当某进程向OS请求内存发现不足时,OS会把内存中暂时不用的数据交换出去,放在SWAP分区中,这个过程称为S2021-10-09 LinuxLinux
linux iptables规则顺序根据封包的规则”比对” 你预先定义的规则内容,若封包数据与规则内容相同则进行动作,否则就继续下一条规则的比对 当一个网络封包要进入到主机之前,会先经由NetFilter 进行检查,那就是iptables 的规则了。检查通过则接受(A2021-10-08 LinuxLinux iptables
一文理解如何使用linux编辑器vivi的使用基本上vi可以分为三种状态,分别是一般模式、编辑模式和命令行模式 一般模式以vi打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用上下左右按键来移动光标,你可以使用删除字符或删除整行来处理文件内容, 也2021-10-07 LinuxLinux VI
一文理解linux IO模型基础概念用户空间和内核空间 对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方),针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为内核空间,而将较低的2021-10-07 LinuxLinux IO模型
一文理解如何使用linux命令-tcpdump简介dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供2021-10-07 LinuxLinux