Simon's | Blog

Why so serious?

运维工具monit的配置与使用

"monit的配置与使用"

“Better code, better life. ” Monit介绍 Monit是一个管理和监视进程,程序,文件,目录和Unix系统上的文件系统的工具。使用Monit我们可以很方便的进行自动运维,并可以在程序发生错误的情况下执行一些自定义的操作。Monit可以启动一个不运行的进程,重启一个没有响应的进程,停止一个使用了太多资源的进程。可以使用Monit来监视文件、执行各种TC...

Redis数据结构-字典

Redis源码学习

“Better code, better life. ” Redis数据结构–字典 字典(Dictionary)在程序语言中又被称为哈希表(Hash Table)或者映射(Map),是一种用于保存键值对的抽象数据结构。字典中的每个键都是唯一的,可以通过键查找与之关联的值,或者更新键所苦暗恋的值。 字典在Redis中的使用也相当广泛,Redis最终要的数据库就是用字典来作为底层实...

ARTS-WEEK6

"ARTS打卡记录"

“Better code, better life. ” ARTS打卡第六周 Algorithm [题目] :https://leetcode-cn.com/problems/remove-duplicate-node-lcci/ [题解] : class Solution { public: ListNode *removeDuplicateNodes(ListN...

RAII 惯用法

"RAII 惯用法"

“Better code, better life. ” C++ RAII 惯用法 什么是RAII?我先卖个关子,且听我说一说我的故事。 刚学习服务器开发时,我接到这样一个任务,在 Windows 系统上写一个 C++ 程序,该程序的功能是实现一个简单的服务器程序,当客户端连接上来后,给客户端发一条 “HelloWorld” 消息后关闭连接。(不用保证客户端一定收到,后文中具体...

ARTS-WEEK5

"ARTS打卡记录"

“Better code, better life. ” ARTS打卡第五周 Algorithm [题目] :https://leetcode-cn.com/problems/remove-duplicate-node-lcci/ [题解] : class Solution { public: ListNode *removeDuplicateNodes(ListN...

Redis数据结构-链表

Redis源码学习

“Better code, better life. ” Redis数据结构–链表 链表在Redis中使用的非常广泛,比如列表键的底层实现之一就是链表。当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为底层实现。除链表键外,发布与订阅、慢查询、监视器等功能也用到了链表。 定义 先看一下源码中对链表节点的定义 typed...

Redis数据结构-字符串

Redis源码学习

“Better code, better life. ” Redis数据结构–字符串 Redis并没有使用C语言默认的,以‘\0’结尾的字符串,而是自定义了一种名为简单动态字符串(simple dynamic string, SDS)的数据结构。在Redis里,C字符串只会用作为字符串字面量(string literal)用做一些无需对字符串值进行修改的地方,比如: redis...

ARTS-WEEK4

"ARTS打卡记录"

“Better code, better life. ” ARTS打卡第四周 Algorithm [题目] :https://leetcode-cn.com/problems/permutation-in-string/ [题解] : 这是一道典型的滑动窗口题目,直接双指针解决: class Solution { public: static bool isCo...

ARTS-WEEK3

"ARTS打卡记录"

“Better code, better life. ” ARTS打卡第三周 Algorithm [题目] :转变数组后最接近目标值的数组和 [题解] : // // Created by Simon on 2020/3/28. // #include <iostream> #include <map> #include <vector&...

使用GoogleTest做单元测试(二)

GTest进阶

“Better code, better life. ” 使用GoogleTest做单元测试(二) 【本文接上】 更多测试断言 Success和Failure SUCCEED()和FAIL()断言不会做任何测试,只是产生一个成功或失败的信号。 SUCCEED()并不会让整个TEST都返回成功,它只是返回当前测试分支的成功。【注意】TEST通过的条件是,所有的断言都...