0%

前言

介绍Redis数据库的实现,解答以下几个问题:

  • Redis服务器是怎么保存数据库的?客户端又是怎么切换数据库的?
  • 数据库的增、删、改、查的实现
  • 键的过期时间是怎么保存的,又是如何删除的?怎么判断一个键是否过期?
  • 过期键的删除策略有哪些?每种策略的优缺点分析?Redis采用的是哪种策略,具体又是怎么实现的?
阅读全文 »

前言

LeetCode链表题汇总,记录解题思路,C/C++语言实现。

LeetCode链表题

阅读全文 »

前言

Redis没有直接使用基础数据结构来实现数据库,而是基于这些数据结构创建了一个对象系统。这个系统包含字符串对象、列表对象、哈希对象、集合对象、有序集合对象。

1. Redis3.0中的6种基础数据结构

阅读全文 »

什么是三大范式

三大范式是数据库设计遵循的规范, 分别是:

  • 第一范式(1NF):表中每列不可再拆分
  • 第二范式(2NF):1NF基础上,要求非主键列完全依赖于主键,不能只依赖于主键的一部分(针对联合主键)
  • 第三范式(3NF):2NF基础上, 要求任何非主键列必须直接依赖于主键,不能是传递依赖
阅读全文 »

问题描述

进程收到SIGABRT信号异常退出,异常调用栈显示__stack_chk_fail

原因分析和定位思路

原因分析: __stack_chk_fail说明发生了缓冲区溢出,canary被破坏。这说明代码设置GCC编译选项fstack-protector,开启了栈保护机制canary

定位思路:

阅读全文 »