一文带你相识 Redis 的慢日记相干底层道理
image-20191211220858341 slowlogEntry 实体的相干字段寄义如下: id: 标识慢日记的独一 ID time: 呼吁执行的时刻戳 duration: 呼吁执行是耗时,单元为玄妙 agrv: 呼吁和参数数组 argc: 呼吁和参数的个数 如上图就暗示了在执行呼吁set number 520 产生了慢日记,呼吁执行耗时 10 微秒。 04、操纵慢日记知道了慢日记的存储布局,我们就必要思量在执行呼吁的时辰,怎样按照前提去建设慢日记。 起首我们必要在呼吁的执行前跋文录时刻戳,然后相减计较出呼吁的执行耗时,然后按照 Redis 处事器设置slowlog-log-slower-than 举办比拟,抉择是否记录慢日记,其它在记录慢日记的时辰必要按照slowlog_max_len 值判定是否要删除最久的日记信息。伪代码如下: //1. 记录呼吁执行前的时刻戳 long before = now(); //2. 执行呼吁 execute(argv, argc); //3. 记录呼吁执行后的时刻戳 long after = now(); //4. 挪用建设慢日记函数 slowlogPushEntryIfNeed(argv, argc, after - before); slowlogPushEntryIfNeed 函数首要用来判定是否插入数据,以及是否删除旧数据。 void slowlogPushEntryIfNeed(robj **argv, int argc, long long duration) { //1. 判定是否开启慢日记 if (server.slowlog_log_slower_than < 0) return; //2. 假如超时,则插入慢日记 if (duraton > server.slowlog_log_slower_than){ //插入 } while (listLength(server.slowlog) > server.slowlog_max_len) { //删除 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |