说句实话,redis这个软件要学习的东西实在多,多到,看的多了就容易迷失,而且还记不住。个人觉得靠记忆去学习一个知识肯定是比较糟糕的,所以还是要带着理解的,最终变成自己的东西,那这个东西才是自己的。

redis里面东西很多,个人认为认知一个知识、框架,软件,首先要知道背景、它解决的擅长点,缺点后,再从一个软件的ROOT出发,去有条理学习这个知识点,这样学习东西才会形成自己的一个体系

下面这篇文章,作者看了之后,觉得应该是作者认为redis的一个ROOT核心、中心知识点,很多东西其实都是围绕这它向四周扩展、发散、填充。

先从redisServer讲起,redis服务端所有数据库都保存在一个redisServer结构内,可以看我下面的图比较形象,里面有一个db数组,表达的是多个redis数据库,我们知道,redis数据库一般默认是分配了16个【从0-15】,客户端可以通过命令select 进行选择,比如select 1选择的是索引为1的数据库,客户端结构保存了指向DB数组的目标数据库指针。再回到服务端,db数组内,单个DB由一个redisDB结构表达,里面有一个dict字典属性,单个数据库的所有数据都存储在里面,dict是一个字典,KEY是所有命令操作的字符串,值是对应的数据结构,具体看我下面的截图数据结构

所以主要是从redisserver数据结构再到redisDB结构,再落实到redisDB里面的dict字典结构,再延伸各个具体的数据结构(比如string,list,hash,set,zset)可以深入到具体数据结构,比如sds,双端列表,skipList等,一一展开...

typedef struct  redisDB{

//dict* dict 【保存了数据库的所有的键值对】==》这个字典被称为键空间

}

dict的键是我们常用的键,值是各种数据类型比如字符串,哈希,列表,集合、有序集合等

比如set  msg “hello”,msg就是dict的KEY对象是一个string类型字符串

Rpush “user”  “zhangsan” 11  “lishi”  33 中user是键空间的KEY字符串对象

再延伸各个数据结构比如

SDS、双端列表、字典、跳表等

在读写键时的维护

上面的会引发另外的知识点

比如

键过期、淘汰策略、内存回收、持久化等

Redis学习笔记之数据库(一)的更多相关文章

  1. StackExchange.Redis学习笔记(三) 数据库及密码配置 GetServer函数

    这一章主要写一些StackExchange.Redis的配置及不太经常用到的函数 数据库连接 下面是我的连接字符串,里面指定了地址,密码,及默认的数据库 Redis启动后默认会分成0-15个数据库,不 ...

  2. Redis学习笔记~目录

    回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...

  3. Redis学习笔记4-Redis配置详解

    在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server   xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...

  4. Redis学习笔记一:数据结构与对象

    1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...

  5. Redis学习笔记之ABC

    Redis学习笔记之ABC Redis命令速查 官方帮助文档 中文版本1 中文版本2(反应速度比较慢) 基本操作 字符串操作 set key value get key 哈希 HMSET user:1 ...

  6. Redis学习笔记(二)-key相关命令【转载】

    转自 Redis学习笔记(二)-key相关命令 - 点解 - 博客园http://www.cnblogs.com/leny/p/5638764.html Redis支持的各种数据类型包括string, ...

  7. Redis学习笔记(二)Redis支持的5种数据类型的总结之String和Hash

    引言 在Redis学习笔记(一)中我们已经会安装并且简单使用Redis了,接下来我们一起来学习下Redis支持的5大数据类型. 简介 Redis是REmote DIctionary Server(远程 ...

  8. Redis学习笔记(2)——Redis的下载安装部署

    一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...

  9. Redis学习笔记(3)——Redis的命令大全

    Redis是一种nosql数据库,常被称作数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted se ...

随机推荐

  1. String、StringBUffer和StringBuilder的区别与使用

    一.区别 String是一个不可变的类,即创建String对象后,该对象中的字符串是不可变的,平时我们改变String对象中的字符串实际上是通过StringBuffer实现的,所以StringBuff ...

  2. PyQt(Python+Qt)学习随笔:QTreeWidgetItem项中列的复选状态访问方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 树型部件QTreeWidget中的QTreeWidgetItem项,项中每列数据都可以单独设置复选状 ...

  3. Python正则表达式re模块学习遇到的问题

    Python正则表达式处理的组是什么? Python正则表达式处理中的匹配对象是什么? Python匹配对象的groups.groupdict和group之间的关系 Python正则表达式re.mat ...

  4. PyQt(Python+Qt)学习随笔:QHeaderView的CascadingSectionResizes属性

    老猿Python博文目录 老猿Python博客地址 一.CascadingSectionResizes作用 QHeaderView的CascadingSectionResizes属性用于控制当用户调整 ...

  5. Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.

    用pycharm连接mysql报错 改变serverTimezone 改了之后确实可以连接上mysql数据库

  6. this.$options.data()实战之重置data

    刚刚看到这个方法学习了一下,然后想到正在开发的项目有一个需要重置data的操作,正好拿来使用一下,节省了好多代码,美滋滋...

  7. 【题解】「CF1352A」Sum of Round Numbers

    应该是纯模拟吧. 直接输入一个字符串,然后一位一位看,如果不是0,就 k++,并计算这个数的真实的值,最后输出就行了. #include<iostream> #include<cst ...

  8. JDK11 下载安装与配置环境变量

    1.jdk11本身也包含jre,不需要安装jre,低版本需要安装jre 2.jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloa ...

  9. 一文搞懂Java引用拷贝、浅拷贝、深拷贝

    微信搜一搜 「bigsai」 专注于Java和数据结构与算法的铁铁 文章收录在github/bigsai-algorithm 在开发.刷题.面试中,我们可能会遇到将一个对象的属性赋值到另一个对象的情况 ...

  10. Flink开发中的问题

    1. 流与批处理的区别 流处理系统 流处理系统,其节点间数据传输的标准模型是:当一条数据被处理完成后,序列化到缓存中,然后立刻通过网络传输到下一个节点,由下一个节点继续处理. 批处理系统 批处理系统, ...