FWQ
Redis数据库原理深入刨析
Redis数据库原理深入刨析 0浏览 收藏 一分耕耘,一分收获!既然打开了这篇文章《Redis数据库原理深入刨析》,就坚持看下去吧!文中内容包含Redis数据库等等知识点…希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢! 1.服务器和客户端实现的数据库 Redis服务器在启动时,会根据redis.conf文件的中databases xx这个配置决定创建多少个数据库(默认配置是16),启动后默认使用的0号数据库,当然可以使用select dbnum这个命令来切换。需要注意的是在redis集群模式下,只有0号数据库可以用,是无法切换到其他库的。 Redis服务器会将所有的数据库都保存在服务器状态的redisServer的db数组中,数组的每一项都代表了一个数据库,用redisDb结构来表示,首先看一下redisServer.db的源码: struct redisServer { ... // 代表数据库的数组 redisDb *db; // 这个记录的配置文件中数据库的数量 int dbnum; ... } 我们通过客户端向Redis写入的任何数据都会记录到这个db数组中,根据前面描述,我们知道可以通过select命令切换到另一个目标数据库,但是客户端是怎么记录的它当前操作的哪个数据库呢?我们继续看一下源码: typedef struct client {…