暂无搜索历史
Redis 一个服务器可以和多个客户端建立网络连接,每个客户端都可以向服务器发送命令请求,服务器接收客户端的命令,处理后将结果返回给客户端。
Append Only File,通过保存 Redis 服务器所执行的命令来记录数据库状态。
主要参考 Redis 官方文档:Redis Persistence。共有 4 种持久化方式:
Redis *.rdb 是内存的二进制文件,通过 *.rdb 能够完全回复 Redis 的运行状态。
Redis server 和一个客户端建立连接后,会在事件驱动框架中注册可读事件——客户端的命令请求。命令处理对应 4 个阶段:
Redis 只有在处理「客户端请求」时,是单线程的;整个 Redis server 不是单线程的,还有后台线程在辅助处理任务。
Redis 事件驱动框架对应的数据结构,在 ae.h 中定义,记录了运行过程信息,有 2 个记录事件的变量:
是在 Redis 初始化时调用的,详见 Redis 源码简洁剖析 07 - main 函数启动。
关于 select, poll, epoll,网络 IO 演变发展过程和模型介绍 这篇文章讲得很好,本文就不浪费笔墨了。
main 函数是 Redis 整个运行程序的入口。源码主要在 server.c 文件中。
ziplist 有两个问题,参考 Redis 源码简洁剖析 05 - ziplist 压缩列表:
压缩列表,内存紧凑的数据结构,占用一块连续的内存空间。一个 ziplist 可以包含多个节点(entry), 每个节点可以保存一个长度受限的字符数组(不以 \0...
有序集合(Sorted Set)是 Redis 中一种重要的数据类型,它本身是集合类型,同时也可以支持集合中的元素带有权重,并按权重排序。
在 dict.h 文件中,Hash 表是一个二维数组(dictEntry **table)。
C 语言 string 函数,在 C 语言中可以使用 char* 字符数组实现字符串,C 语言标准库 string.h 中也定义了多种字符串操作函数。
在 GitHub 上找到并 fork Redis 源码 https://github.com/redis/redis,然后在本地 clone 自己 fork 出...
2021 年 12 月 9 日,2021 年 11 月 24 日,阿里云安全团队向 Apache 官方报告了 Apache Log4j2 远程代码执行漏洞。详情...
使用 Netty、ZooKeeper 和 Spring Boot 手撸一个微服务框架。
项目 GitHub LeetCode 全解,欢迎大家 star、fork、merge,共同打造最全 LeetCode 题解!
给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。