Redis 学习笔记

数据结构和对象 # 数据结构 源码位置 SDS sds.h LinkList adlist.h Dict dict.h Simple Dynamic Strings # 文档: Hacking Strings sds.h typedef char *sds; struct __attribute__ ((__packed__)) sdshdr8 { uint8_t len; // 字符串长度 uint8_t alloc; // 字符串最大容量 unsigned char flags; /* 3 lsb of type, 5 unused bits */ char buf[]; }; sds 是指向一个 C 字符串的指针, 访问 Header 需要向前寻址 struct __attribute__ ((__packed__)) 表示不要内存对齐, 使用紧凑模式 char buf[] 是柔性数组, 在结构体的最后, 此前需要至少一个成员
全文 →

使用树莓派搭建K8s集群

对k8s十分感兴趣,但学习k8s首先得需要个集群,单个节点没什么意思,学习或测试通常使用多个虚拟机来模拟集群。我刚好有3个树莓派,偶然发现k3s可以安装到树莓派上,k3s特别轻便,安装即用十分适合自己搭建小项目或学习。本文记录一下我搭建k3s集群的步骤,通过搭建集群的方式学习和理
全文 →

Hugo博文图片路径

每次切换博客系统,搞系统的时间总是比写博客的时间要长,hugo也不例外,这次说一下hugo下博文图片的路径配置。之前配置的是将博文图片放在 static/posts 下建立和博文一样的文件夹存储图片,hugo生成静态网站时会将 static 文件夹拷贝到网站根目录,图片地址刚好在文章url的下一级,看起来很合理,但在本
全文 →

使用Docker搭建RocketMq

一直在使用公司提供的RocketMq环境,公司提供的是深度定制的版本。突发奇想自己也搭建一个试试。RocketMQ作为一个分布式架构的系统,docker-compose方式可以清晰的用多容器模拟分布式的状态。因为是单机器并且性能不强的情况下搭建,遇到一些坑,这里记录一下,搭建完成
全文 →

系统和应用性能分析工具

Linux 性能分析 # 系统级别 # 一些命令 # uptime: 查看cpu负载 top (htop): 进程的资源占用状况 ps: 显示进程(process) 的状态 vmstat (free): 内存整体使用情况 iostat: 磁盘的一些指标 mpstat: 显示每个 CPU 核心的工作情况 ping: 连通性和延迟 nicstat: 网卡的一些指标 dstat: 综合cpu, memory, IO, network, 实时展示当前的系统资源利用情况 高级一些的命令 sar, netstat, pidstat, strace, tcpdump, blktrace, iotop, slabtop, sysctl, /proc
全文 →

机械键盘

Filco Majestouch MINILA Air # 第一架机械键盘。 优点: 蓝牙,推崇无线外设,无线一定是趋势。 青轴,用来打字。 便携,标准 104 键跟 67 键比简直就是怪物。 美观,奶酪绿的配色十分可人。 有利必有弊,除了美观这点无可挑剔以外,其他优点也都是痛点。 缺点: 虽然这架键盘的蓝牙连接支持记忆三台设备,但从来就不好用过,每次更换设
全文 →

设置 Bing 主页背景为系统桌面

每天更换主页背景是 bing.com 一大特色。 macOS 下可以通过简单脚本将图片设置为桌面背景。 项目仓库 9ft/BingWallpaper 编写脚本 # 读取本地目录,检查今日图片是否获取过 curl 获取网页源码 正则匹配出背景图 使用 osascript 设置系统桌面背景 BingWallpaper.sh #!/bin/sh localDir="/Users/$USER/Pictures/BingWallpaper" filenameRegex=".*"$(date "+%Y-%m-%d")".*jpg" log="$localDir/bin/log.log" if [ ! -d "$localDir" ]; then mkdir "$localDir" fi findResult=$(find $localDir -regex $filenameRegex) if [ ! -n "$findResult" ]; then baseUrl="cn.bing.com" html=$(curl -L $baseUrl) imgurl=$(expr "$(echo "$html" | grep "&rf")" : '.*href=\"\(\/th\?id=OHR\.[A-Za-z0-9]*\_ZH\-CN[0-9]*\_1920x1080\.jpg\).*') echo img $imgurl filename=$(expr "$imgurl" : '.*OHR\.\(.*\)') echo $filename localpath="$localDir/$(date "+%Y-%m-%d")-$filename"
全文 →

神州 K640E-i7 黑苹果安装

changelog: 2020-03-09 fix screen glitch 2019-12-09 替换为 WhateverGreen 驱动核显 2019-10-20 update to catalina 前期工作 # 必知必会. Windows 下挂载 Mac 的 EFI 分区 # 管理员权限下执行: C:\Windows\system32>diskpart // 进入 diskpart DISKPART> list disk // 列出磁盘 Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 931 GB 0 B Disk 1 Online 119 GB 0 B * Disk 2 Online 111 GB 0 B * DISKPART> select disk 1 // 选择磁盘 Disk 1 is now the selected disk. DISKPART> list partition // 列出所选磁盘分区 Partition ### Type Size Offset ------------- ---------------- ------- ------- Partition 1 System 200 MB 20 KB
全文 →

入手神州 K640E-i7

用不下去以前的 ASUS K42JA, 虽然配置目前还够用, 但屏幕分辨率太差劲了. 着手买新笔记本. 以前的目标是买一台 MBPR, 但两次跳票加上近期有传言说 9 月 7 的发布会还是不会发布新本. 偶然间看到神舟 K640E, 首先它有一个 1920x1080 分辨率的屏幕, 其次 CPU 也不差, 内存 4G 但可以扩展. 价格也便宜. 果断买之. 第一台有个坏点, 换新后还有个
全文 →

使用 Let’s Encrypt 为网站增加 HTTPS 访问方式

使用的证书是免费的 Let’s Encrypt, 相同免费的还有 StartSSL, 分别看了他俩的主页, 最后选择了 Let’s Encrypt. 为了方便部署, 使用了电子前哨基金会(EFF)为 Let’s Encrypt 推出的客户端 Certbot. 下载安装 Let’s Encrypt 和 Certbot # wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto ./certbot-auto 会自动安装 certbot 和其依赖项, 包括 letsencrypt. 最后有个配置向导, 我用这个向导没成功, 下面手动配置就好. 证书
全文 →

我是如何在天津大学上网的

前言 # 刚刚来到天大的时候, 第一次接触有 IPv6 的网络, 以前就听说过教育网但没接触过. IPv6 是教育网提供的, 而且很多高校都接入了教育网. IPv6 最吸引人的是它的流量免费, 而且上网限制不多. IPv4 流量收费, 开始的计费方式因为一直没用忘记了, 在最近一次调价(降价)后的计费的策略是每月 5G 免费流量, 可以叠加流
全文 →

音乐播放器

本文回顾了我在不同阶段接触和使用的音乐播放器,从最早的Windows Media Player,到如今使用的Apple Music等各种播放器。作为一个音乐爱好者,音乐对于我而言不仅承载了回忆,还是情感的寄托。从初中时代至今,一直在维护和更新原有的曲库。受“数字生活仓库”的执念驱使,一直在寻找
全文 →

使用 GitWeb 搭建简易 Git 仓库

如果你想让自己的 Git 仓库对外展示,除了使用类似 GitHub 的托管网站外,也可以自己建立一个基于网页的简易查看器,本文介绍如何搭建一个 GitWeb 服务器,并可透过 HTTP 协议对远端仓库进行 pull、push 等操作。实际使用时可以直接使用我封装好的 Docker Image 进行快速部署。 准备工作 # 安装依赖软件 # git gitweb:Git
全文 →