一致性Hash算法是解决分布式缓存等问题的一种算法;
本文介绍了一致性Hash算法的原理,并给出了一种实现和实际运用的案例;
源代码:
一致性Hash算法是解决分布式缓存等问题的一种算法;
本文介绍了一致性Hash算法的原理,并给出了一种实现和实际运用的案例;
源代码:
我们都知道MySQL中的事务默认情况下隔离级别是可重复读,即别的事务对数据的操作不影响当前事务;
但是这里有一个坑可能会打破你对可重复读的认知;
距离上一次写文章已经过去三个多月了,最近一直在研究Rust和K8S的源码;
这里推荐一些我看过的Rust的入门书籍吧~
源代码:
众所周知C++是一门编译型的语言,我们需要先将C++的源代码进行编译、连接生成二进制,然后才能执行;
而Cling是一个构建在Clang和LLVM之上的一个C++解释器,它允许我们像Python一样实现对C++代码的逐行执行!
同时,Cling也支持集成进JupyterLab中直接使用!
源代码:
相信使用过Python的同学都不会对JupyterNotebook陌生,而JupyterLab是JupyterNotebook的升级版,它提供了更好的用户体验,例如可以同时在一个浏览器页面打开编辑多个Notebook,Ipython console和terminal终端,并且支持预览和编辑更多种类的文件等;
本文讲述了如何安装JupyterLab,并实现远程登录;
本文介绍了如何部署一个简单的Go项目;
源代码:
在我们写代码的时候,经常会有批量创建任务并等待返回的场景;此时使用生产消费者并发的提交任务来代替for循环逐个执行任务能够大大提高代码效率;
然而不加限制的创建Goroutine也是会有内存溢出、CPU切换过多等资源浪费的情况;
本文讲述了Go中一些常用的控制Goroutine数量的方法;
源代码:
本文展示了如何在Rust中使用PhantomType消除重复代码;
源代码:
有些编程语言提供了代码格式化检查等工具,如:Go、Rust等,我们可以在commit之前,对代码进行格式化检查,保证代码规范,而pre-commit正是这样的工具;
最近在学习Rust,而Rust和WebAssembly的结合正在如火如荼的进行着;相比于Go,Rust和WebAssembly的结合可以说是更加成熟,包括了编译优化、甚至编译完成可以一键发布到npm库;
本文讲述了如何使用Rust实现一个Hello-World的WebAssembly;
关于Go实现WebAssembly,见:
源代码: