文章394
标签223
分类53
深入探讨MySQL查询时字符串尾部存在空格的问题

深入探讨MySQL查询时字符串尾部存在空格的问题

之前在一次MySQL的查询中,偶然间发现了即使在字符串查询条件的后面加空格也能查出数据来!

本文从多个场景对该现象进行了分析;


使用Rust实现一个双向链表

使用Rust实现一个双向链表

如何激怒一个Rust爱好者?让他用Rust实现一个双向链表即可!

总所周知,Rust中是不能同时存在两个可变引用的,所以在Rust中实现双向链表就会变得非常反人类(因为需要同时存在前后节点同时指向对方的情况);

同时,双向链表也引入了循环引用的问题,这也是导致内存难以释放的一个场景;

没想到一个简简单单的双向链表居然涉及如此之多的问题!

本文就使用Unsafe Rust实现了双向链表;

源代码:


一致性Hash算法总结与应用

一致性Hash算法总结与应用

MySQL一致性视图的坑

MySQL一致性视图的坑

我们都知道MySQL中的事务默认情况下隔离级别是可重复读,即别的事务对数据的操作不影响当前事务;

但是这里有一个坑可能会打破你对可重复读的认知;


一些学习Rust的总结

一些学习Rust的总结

距离上一次写文章已经过去三个多月了,最近一直在研究Rust和K8S的源码;

这里推荐一些我看过的Rust的入门书籍吧~

源代码:


使用C++解释器Cling

使用C++解释器Cling

众所周知C++是一门编译型的语言,我们需要先将C++的源代码进行编译、连接生成二进制,然后才能执行;

而Cling是一个构建在Clang和LLVM之上的一个C++解释器,它允许我们像Python一样实现对C++代码的逐行执行!

同时,Cling也支持集成进JupyterLab中直接使用!

源代码:


安装JupyterLab

安装JupyterLab

相信使用过Python的同学都不会对JupyterNotebook陌生,而JupyterLab是JupyterNotebook的升级版,它提供了更好的用户体验,例如可以同时在一个浏览器页面打开编辑多个Notebook,Ipython console和terminal终端,并且支持预览和编辑更多种类的文件等;

本文讲述了如何安装JupyterLab,并实现远程登录;


使用K8S部署最简单的Go应用

使用K8S部署最简单的Go应用

控制Goroutine数量的方法

控制Goroutine数量的方法

在我们写代码的时候,经常会有批量创建任务并等待返回的场景;此时使用生产消费者并发的提交任务来代替for循环逐个执行任务能够大大提高代码效率;

然而不加限制的创建Goroutine也是会有内存溢出、CPU切换过多等资源浪费的情况;

本文讲述了Go中一些常用的控制Goroutine数量的方法;

源代码:


Rust中的PhantomType

Rust中的PhantomType