新增进阶实战:实现一个简单的 reids

pull/1163/head
sunface 2 years ago
parent 7e85d1ff49
commit 93c16f002f

Binary file not shown.

@ -115,30 +115,29 @@
- [Macro 宏编程](advance/macro.md) - [Macro 宏编程](advance/macro.md)
<!-- - [SIMD todo](advance/simd.md) --> <!-- - [SIMD todo](advance/simd.md) -->
<!-- - [高阶特征约束(HRTB) todo](advance/hrtb.md) --> <!-- - [高阶特征约束(HRTB) todo](advance/hrtb.md) -->
- [async/await 异步编程](advance/async/intro.md)
- [async 编程入门](advance/async/getting-started.md)
- [底层探秘: Future 执行与任务调度](advance/async/future-excuting.md)
- [定海神针 Pin 和 Unpin](advance/async/pin-unpin.md)
- [async/await 和 Stream 流处理](advance/async/async-await.md)
- [同时运行多个 Future](advance/async/multi-futures-simultaneous.md)
- [一些疑难问题的解决办法](advance/async/pain-points-and-workarounds.md)
- [实践应用Async Web 服务器](advance/async/web-server.md)
- [进阶实战: 实现一个简单 redis](advance-practice/intro.md)
- [tokio 概览](advance-practice/overview.md)
- [使用初印象](advance-practice/getting-startted.md)
- [创建异步任务](advance-practice/spawning.md)
- [共享状态](advance-practice/shared-state.md)
- [消息传递](advance-practice/channels.md)
- [I/O](advance-practice/io.md)
- [解析数据帧](advance-practice/frame.md)
- [深入 async](advance-practice/async.md)
- [select](advance-practice/select.md)
- [类似迭代器的 Stream](advance-practice/stream.md))
- [优雅的关闭](advance-practice/graceful-shutdown.md)
- [异步跟同步共存](advance-practice/bridging-with-sync.md)
- [Rust 异步编程](async-rust/intro.md)
- [async/await 异步编程](async-rust/async/intro.md)
- [async 编程入门](async-rust/async/getting-started.md)
- [底层探秘: Future 执行与任务调度](async-rust/async/future-excuting.md)
- [定海神针 Pin 和 Unpin](async-rust/async/pin-unpin.md)
- [async/await 和 Stream 流处理](async-rust/async/async-await.md)
- [同时运行多个 Future](async-rust/async/multi-futures-simultaneous.md)
- [一些疑难问题的解决办法](async-rust/async/pain-points-and-workarounds.md)
- [实践应用Async Web 服务器](async-rust/async/web-server.md)
- [Tokio 使用指南](async-rust/tokio/intro.md)
- [tokio 概览](async-rust/tokio/overview.md)
- [使用初印象](async-rust/tokio/getting-startted.md)
- [创建异步任务](async-rust/tokio/spawning.md)
- [共享状态](async-rust/tokio/shared-state.md)
- [消息传递](async-rust/tokio/channels.md)
- [I/O](async-rust/tokio/io.md)
- [解析数据帧](async-rust/tokio/frame.md)
- [深入 async](async-rust/tokio/async.md)
- [select](async-rust/tokio/select.md)
- [类似迭代器的 Stream](async-rust/tokio/stream.md))
- [优雅的关闭](async-rust/tokio/graceful-shutdown.md)
- [异步跟同步共存](async-rust/tokio/bridging-with-sync.md)
- [Rust 难点攻关](difficulties/intro.md) - [Rust 难点攻关](difficulties/intro.md)
- [切片和切片引用](difficulties/slice.md) - [切片和切片引用](difficulties/slice.md)

@ -0,0 +1,9 @@
# 进阶实战: 实现一个简单 redis
在入门实战,你可以说众览半山不咋小,但是能坚持到这里,甚至当完成后,就真的是一览众山小,余敌皆鱼虾了。
在进阶实战中,我们要来真的了,之前的简单命令行程序,是真的简单,但是这次的简单 redis 是真的不简单,在这里你将被迫使用十八般武艺,特别的,我们还将学会 Rust 异步镇山之宝 `tokio` 包的使用。
> 本章在内容上大量借鉴和翻译了 tokio 官方文档[Tokio Tutorial](https://tokio.rs/tokio/tutorial), 但是重新组织了内容形式并融入了很多自己的见解和感悟,给大家提供更好的可读性和知识扩展性

@ -1,11 +1,9 @@
# Rust 异步编程 # 异步编程
在艰难的学完 Rust 入门和进阶所有的 70 个章节后,我们终于来到了这里。假如之前攀登的是珠穆朗玛峰,那么现在攀登的就是乔戈里峰( 比珠峰还难攀爬... )。 在艰难的学完 Rust 入门和进阶所有的 70 个章节后,我们终于来到了这里。假如之前攀登的是珠穆朗玛峰,那么现在攀登的就是乔戈里峰( 比珠峰还难攀爬... )。
如果你想开发 Web 服务器、数据库驱动、消息服务等需要高并发的服务,那么本章的内容将值得认真对待和学习,将从以下方面深入讲解 Rust 的异步编程: 如果你想开发 Web 服务器、数据库驱动、消息服务等需要高并发的服务,那么本章的内容将值得认真对待和学习。
接下来,我们将深入了解 async/await 的使用方式及背后的原理。
- Rust 异步编程的通用概念介绍 > 本章在内容上大量借鉴和翻译了原版英文书籍[Asynchronous Programming In Rust](https://rust-lang.github.io/async-book/01_getting_started/01_chapter.html), 特此感谢
- Future 以及异步任务调度
- async/await 和 Pin/Unpin
- 异步编程常用的三方库
- tokio 库
- 一些示例

@ -1,5 +0,0 @@
# 异步编程
接下来,我们将深入了解 async/await 的使用方式及背后的原理。
> 本章在内容上大量借鉴和翻译了原版英文书籍[Asynchronous Programming In Rust](https://rust-lang.github.io/async-book/01_getting_started/01_chapter.html), 特此感谢

@ -1,8 +0,0 @@
# Tokio 使用指南
在上一个章节中,我们提到了 Rust 异步编程的限制,其中之一就是你必须引入社区提供的异步运行时,其中最有名的就是 `tokio`
在本章中,我们一起来看看 `tokio` 到底有什么优势,以及该如何使用它。
> 本章在内容上大量借鉴和翻译了 tokio 官方文档[Tokio Tutorial](https://tokio.rs/tokio/tutorial), 但是重新组织了内容形式并融入了很多自己的见解和感悟,给大家提供更好的可读性和知识扩展性
Loading…
Cancel
Save