Redis 学习 基础数据结构篇 之SDS
[TOC] 这篇文章基本是抄来的。 好不要脸啊我。 带有空还是要自己整理一下。 基于 [Redis 6.2.1](redis/redis at 6.2.1 (github.com)) SDS Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型, 并将 SDS 用作 Redis 的默认字符串表示。 Redis 中除了字符串字面量,当作常量使用的地方用了C语言传统字符串。 其他可以想见的涉及到字符串的东西都是用SDS实现的。 redis 3.2 版本更新了 sds 2.0, 本文简单总结下sds1.0,再总结下sds2.0. SDS 1.0 SDS 1.0 内容copy 自 《Redis 设计与实现(第二版)》 sds1.0 定义 每个 sds.h/sdshdr 结构表示一个 SDS 值: 12345678910111213struct sdshdr { // 记录 buf 数组中已使用字节的数量 // ...
Redis 学习
[TOC] 准备好好学习下redis了 《Redis 设计与实现(第二版)》 redis-3.0.0 带中文注释代码 redis 最新版代码 准备跟书看,同时对比下最新版代码,最后运行调试看下。 博客还不知道会不会更新。。。。 环境安装 我个人习惯用vscode。 C/C++ 开发环境这里不展开了,参考这个搞下就行了 简单配置下就可以断点调试了 .vscode/launch.json 12345678910111213141516171819202122232425{ "version": "0.2.0", "configurations": [ { "name": "(redis-6.2.1) 启动", "type": "cppdbg", "request": "launch", ...
StudyGolang
中文:在线入门指引 http://go-tour-zh.appspot.com/basics/1 中文:文档首页 https://go-zh.org/doc/ 中文首页 https://go-zh.org/ 英文首页 https://golang.org/ Go 中文主页 先把这个教程看完 - Go 指南 然后就去写代码 完毕 go 语言常用的一些代码 (刷题 自定义排序 [【Go语言】基本类型排序和 slice 排序](https://itimetraveler.github.io/2016/09/07/【Go语言】基本类型排序和 slice 排序/) 123456789101112131415161718192021222324252627282930313233343536373839404142package mainimport ( "fmt" "sort")type Person struct { Name string Age int}// 按照 Person.Age 从大到小排序t ...
终于用上MBP了
[toc] MacOS 真香! 公司给发了个 MacBook Pro 然后就基本告别 Manjaro 了, 这里介绍下使用 osx 的一些体验 安装包管理器 homebrew mac 的软件包管理器, 一般好用吧, 用过 pacman 感觉其他的都不太行 1/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 123456# 换清华源 https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"for tap in core cask{,-fonts,-drivers,-versions} command-not-found; do brew ...
python import
未完待续 python import研究 `python`用了好久了, 对它的`import`规则一直都很懵,借此机会梳理下. 首先是导包. 导入同目录下的包, 或者安装好的第三方模块, 或者python自带的模块 1import module_name 导入当前目录中某一文件夹里面的python模块 1from dir import module_name
travis-ci 自动化部署hexo静态博客
travis-ci 自动化部署hexo静态博客 使用github pages的用户应该都有一个痛点, 就是要本地写好博文后再执行hexo c,hexo g,hexo d等命令, 特别是当博文数量多了的时候hexo g就要等待几分钟甚至更长时间,然后在hexo d 甚是烦恼. 查了资料, 有了travis-ci这个GitHub 的亲兄弟,就容易的多了, 只需3步配置,就可以享受持续集成自动部署博客的. 用户只需要在markdown原文上修改,然后push到github上去就可以了, Step 1 GitHub 上配置 安装github app https://github.com/settings/installations 申请Personal access tokens 转送门 -> https://github.com/settings/tokens 在这里主要是设置github-token,让travis有权限读写github项目文件 去github上申请一个就好 点生产新的token的按钮.申请好后就会出现下面的那个. 我勾选的设置,可以参考 St ...
csdn博文迁移至hexo心路历程
某天我之前的hexo主题被自己玩坏了, 决定换一个主题, 同时突然想把之前CSDN博文迁移进来,CSDN这个网站是越来越傻逼了. 最终选择了hexo-theme-matery主题, 但最艰难的博文迁移过程算是完成了,但仍然有很大瑕疵… 之前迁移的版本瑕疵很大,挑了个时间重新爬了一遍, 这次的思路是登录后爬取CSDN的Markdown原文。 HEXO更换主题,并配置 有了easyHexo这个项目做起来还是很容易的,里面很详细的介绍了hexo博客的构建部署及主题使用以及配置. 我这里就不在赘述了,只说几个坑吧. 代码高亮问题 我采用的 hexo-prism-plugin 是一个代码高亮的插件,但是对c++代码的编写是必须为cpp 不能为 c++. 渲染问题 之前的文件中存在} }这样的字符,hexo渲染的时候就会出现报错 123FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.htmlTemplate re ...
主流应用换源or镜像加速
国内换源加速. Arch or manjaro : pacman 启用中国源 1sudo pacman-mirrors -c China 添加archlinuxcn源 archlinuxcn源至您的 /etc/pacman.conf 1234[archlinuxcn]#The Chinese Arch Linux communities packages.SigLevel = Optional TrustAllServer = https://mirrors.ustc.edu.cn/archlinuxcn/$arch ubuntu 1.备份原来的源 1sudo cp /etc/apt/sources.list /etc/apt/sources_init.list 将以前的源备份一下,以防以后可以用的。 2.更换源 1sudo gedit /etc/apt/sources.list 使用gedit打开文档,将下边的阿里源复制进去,然后点击保存关闭。 阿里源 123456789101112131415deb http://mirrors.aliyun.com/ubuntu/ xeni ...
StudyDocker
操作环境: Arch & manjaro docker命令行管理工具使用的dockly 但仍然有缺陷,以后再找找 有没有其他更好用的命令行工具. 教程先看了一遍 B站的尚硅谷教程 有些av号的顺序不对. 看这个就行了. tabris’s 阿里云镜像加速器: https://oj7znbfj.mirror.aliyuncs.com 安装篇 命令安装docker本体 1sudo pacman -S docker 同时建议安装dockly作为docker的命令行管理软件. https://www.npmjs.com/package/dockly 非root用户运行docker是执行如下命令 1sudo usermod -aG docker $USER #your usrname 执行如下命令启动docker服务 12systemctl enable dockersystemctl start docker 镜像加速 鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是阿里云的镜像加速器: https://oj7znbfj.mirro ...
vim使用心得
vim简介 Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 所有的 Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在。 但是目前我们使用比较多的是 vim 编辑器。 vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。 vim主要有以下几个优点. 可以不使用鼠标,完全用键盘操作。 系统资源占用小,打开大文件毫无压力。 键盘命令变成肌肉记忆以后,操作速度极快。 同时现今很多开源软件(ranger,lazygit)采用的快捷键都与vim类似.学习vim变得很有必要. 但我这里采用的是neovim NeoVim 旨在成为Vim的升级版,有不少对它的介绍,我就不赘述了。NeoVim官网强调了它的四大特点: Powerful plugins(强大的插件) Better out-of-the-box(更好的开箱即用) First-class embedding(高度支持嵌入模式) Drop-in replacement for Vim(直接替换Vim)。 v ...