说句实话,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. 树莓派RTL8723BU_LINUX驱动安装

    1.安装前准备:sudo apt-get -y update;sudo apt-get -y upgrade;sudo apt-get -y dist-upgrade;sudo apt-get ins ...

  2. 微服务注册到Nacos的IP私网172.x.x.x网段无法访问的问题

    解决方案一 显示声明注册服务实例的外网IP,默认就是使用私网的IP造成无法访问的,配置如下: spring: cloud: nacos: discovery: ip: 101.37.6.8 解决方案二 ...

  3. Visual Studio 2012 Ultimate旗舰版下载地址与序列号

    (为了方便个人使用转的的别的帖子的内容,原文链接http://wenku.baidu.com/link?url=acL08J8bTNQ4S5Sd3n3oLN5KJTtrfe8hHuP8aUrNscKN ...

  4. 第8.34节 《Python类中常用的特殊变量和方法》总结

    本章介绍了Python类中常用的特殊变量和方法,这些特殊变量和方法都有特殊的用途,是Python强大功能的基石之一,许多功能非常有Python特色.由于Python中一切皆对象,理解这些特殊变量和方法 ...

  5. PyQt学习随笔:槽函数获取信号发送对象的方法

    在PyQt中,相似控件发送的信号可以每个控件信号对应一个槽函数,也可以将相似控件的相同信号对应到一个槽函数,但如果槽函数相同,怎么区分信号是谁发送的呢?那就是在信号函数中使用sender()函数获取信 ...

  6. CNVD漏洞证书(1)

    之前申请了CNVD原创漏洞,踩了坑,记录一下 有很多师傅写过相关的文章: https://blog.csdn.net/qq1124794084/article/details/82657840 htt ...

  7. 推荐系统(CTR领域)实战入门指南

    CTR经典模型如:FM,FFM,Wide&Deep,建议自己去复现一个完整的通用模型 先从pytorch版本入手(后期考虑tensorflow),从kaggle上找实际的比赛 github 相 ...

  8. 你必须掌握的关于JVM知识点

    对本文所持态度 抓住主要矛盾,抓住重点学习,然后从这些点展开学. 不管是面试别人,还是参加面试.都可以有收获. JDK体系结构与JVM架构解析 jdk jre javac jvm Java是怎么实现跨 ...

  9. Springboot集成xxl-Job

    一.前言 xxl-job一个轻量级的分布的调度中间件,详情介绍自己到官网看:https://www.xuxueli.com/xxl-job/ 二.客户端(执行器) 引入依赖compile group: ...

  10. ucore操作系统学习(六) ucore lab6线程调度器

    1. ucore lab6介绍 ucore在lab5中实现了较为完整的进程/线程机制,能够创建和管理位于内核态或用户态的多个线程,让不同的线程通过上下文切换并发的执行,最大化利用CPU硬件资源.uco ...