telnet命令是TELNET协议的用户接口,它支持两种模式:命令模式和会话模式;
虽然telnet支持许多命令,但大部分情况下,我们只是使用它查看目标主机是否打开了某端口(默认是23);
telnet命令是TELNET协议的用户接口,它支持两种模式:命令模式和会话模式;
虽然telnet支持许多命令,但大部分情况下,我们只是使用它查看目标主机是否打开了某端口(默认是23);
JuiceFS 是一款面向云原生设计的高性能分布式文件系统,在 Apache 2.0 开源协议下发布,提供完备的 POSIX 兼容性,可将几乎所有对象存储接入本地作为海量本地磁盘使用,亦可同时在跨平台、跨地区的不同主机上挂载读写!使用 JuiceFS 将云厂商的对象存储挂载到本地,就得到一个几乎无限容量的存储空间了;目前 JuiceFS 支持大部份主流厂商提供的对象存储服务,例如:S3、COS、OSS等;
本文记录了腾讯云COS+腾讯云轻量服务器的方案;
Github:
官方文档:
LRU(Least Recently Used) 是一种使用广泛的缓存数据替换策略,目的是在有限的内存空间中尽可能保留最有价值的缓存数据;其核心本意是,在资源出现不足时,剔除掉最近最少使用的数据,为新数据提供存放空间;
本文首先讲解了LRU算法,随后给出了LruCache的Rust实现;
源代码:
关联文章:
Skiplist是一种数据结构,它允许快速查询一个有序连续元素的数据链表,跳跃列表的平均查找和插入时间复杂度都是O(logn),优于普通队列的O(n),Skiplist被用在Redis、LevelDb中;
本文首先讲解了Skiplist,随后给出了Rust实现;
源代码:
关联文章:
布隆过滤器(Bloom Filter)是一个基于Hash的概率性的数据结构,它是由一个很长的二进制数组组成,用来检查一个元素可能存在集合中,和一定不存在集合中;
它的优点是空间效率高,但是有一定false positive(假阳性:元素不在集合中,但是布隆过滤器显示在集合中);
本文首先介绍了BloomFilter,随后给出了Rust实现;
源代码:
LevelDB 是一个持久化的 k/v 数据库,Chrome浏览器中涉及的 IndexedDB,就是基于 LevelDB 构建而成的;
本文讲解了如何简单的使用 LevelDb,后面也会继续写系列文章对LevelDB的源码进行分析;
源代码:
本篇是本系列的最后一节,主要是对我们之前实现的功能进行测试;
Rust提供了非常方便的工具编写测试和示例;
源代码:
系列文章:
在上一篇《mini-redis项目-4-服务端》中,我们实现了mini-redis的服务端,这一篇来实现客户端;
源代码:
系列文章:
前面几篇文章讲解了mini-redis的存储层、连接层,这一篇在此基础之上继续讲解服务端的实现;
源代码:
系列文章:
上一篇文章 《mini-redis项目-2-存储层》 中讲解了mini-redis数据存储层的实现,这一篇在这个基础之上,讲解连接层的实现;
连接层负责建立服务端和客户端之间的连接,通过tokio框架我们可以异步的处理连接;
源代码:
系列文章: