博客

Redis源码阅读之get命令

June 18, 2024
Redis, 数据库
Redis

redis版本:7.0.2 get命令对应源码中的函数名getCommand,对应文件是t_string.c。相关源码如下: int getGenericCommand(client *c) { robj *o; if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.null[c->resp])) == NULL) return C_OK; if (checkType(c,o,OBJ_STRING)) { return C_ERR; } addReplyBulk(c,o); return C_OK; } void getCommand(client *c) { getGenericCommand(c); } 可以 ...

InnoDB之隐式锁

June 16, 2024
后端开发, 数据库
Mysql

MySQL版本:8.3.0。 隔离级别:RC。 为了节约资源,尽可能避免生成不必要的锁结果,InnoDB设计了隐式锁。隐式锁是指在执行语句时并不生成锁,而在特定场景触发时才生成锁。主要用于插 ...

Redis位图的使用

June 16, 2024
后端开发, Redis
Redis

位图的概念及原理 # 我们可以把位图理解成一个bit数组,每个元素的值是0或1。 下面用一张简单的图来解释一下: 我们可以用第一位来存储用户id为1的用户的在线状态,用第二位来存储用户id为2的 ...

gRPC入门系列之6-添加pprof

December 17, 2023
Grpc, 微服务
Grpc, 微服务, Consul

程序在运行过程中,总是会遇到一些性能问题,比如cpu使用率莫名奇妙的飙升、内存使用率奇高等,轻者导致接口响应速度变慢,重者导致系统崩溃,无法提供服务。 这时候,我们就需要对程序进行性能分析 ...

gRPC入门系列之3-stream模式

December 3, 2023
Grpc, 微服务
Grpc

gRPC的流模式有三种: 客户端流模式,客户端向服务端发送多条消息,发送完毕后等待服务端返回结果。这可用于数据上报等场景。 服务端流模式,客户端向服务端发送一条消息,服务端向客户端返回多条消 ...