背景

这篇文章是对黄建宏的书籍的第二部分,单机服务器的总结/学习笔记。

数据结构

包含字段 1.数据

数据的数据结构是数组


节点的数据结构

-- 为什么要弄这么多数据库? ?

切换数据库

切换数组元素


客户端的数据结构 有个字段指向当前使用的数据库,即数组的某个元素,默认是0号元素

包含哪些组件

服务器 客户端

写数据

分两部分 1.第一层的Key/value是映射数据结构 2.第二层是value,value的数据结构就是对外数据结构,有各种类型的数据结构

不同持久化的区别

一个保存的是数据,一个保存的是命令。

保存命令,不是说只保存命令,而是保存命令+数据,把二者直接当成一个字符串,按一定格式写入和按一定格式还原。这种情况只有字符串这种数据结构,没有其他数据结构。

RDB持久化

Redis DB

数据结构


存储的是二进制,且经过压缩

存储命令AOF

append only file追加文件

写命令,写入和还原的方式,和写数据的写入和还原有点不一样。


重写,为什么要重写?怎么重写?

后台重写?为什么要后台重写?怎么实现?

事件

两种
1.文件事件
2.时间事件

文件就是套接字事件,时间就是定时任务事件。


文件事件


事件处理器类型
1.请求
2.响应

客户端

服务器的数据结构里有个指针字段指向了一个链表,链表保存了所有的客户端。然后,客户端又包含了客户端的所有数据信息。


输入缓冲区
输入缓冲区字段,保存了命令+数据,以字符串格式保存。

输出缓冲区
1.短数据
固定大小
2.长数据
可变大小

短数据,就是成功之后,返回ok之类的信息

长数据


生命周期
1.创建客户端
2.关闭客户端

当然,都是在服务器创建和关闭的,客户端也可以主动关闭。


redis与lua脚本
lua脚本可以作为伪客户端

注:命令存储AOF这种方式,也可以作为伪客户端。

服务器

步骤
1.客户端请求数据
需要转换请求数据为redis协议的格式的数据
2.服务器处理数据
3.服务器响应成功数据
4.客户端显示数据


生命周期
1.服务器创建
2.运行
3.关闭


数据结构
1.客户端链表
2.数据库链表

参考

黄建宏

转载于:https://juejin.im/post/5ceaa57a6fb9a07ee30df6e9

黄建宏-redis单机服务器相关推荐

  1. 黄建宏-redis多机数据库

    背景 这篇文章是对黄建宏第三部分的总结/学习笔记. 所谓的高可用,其实也就是这一部分介绍的几个点,即 复制 + 哨兵 + 集群. 复制 目的 复制的目的是数据一致,就是从要达到和主的数据一致. 流程 ...

  2. 《Redis设计与实现 黄建宏 著》阅读笔记目录(持续更新)

    <Redis设计与实现 黄建宏 著>第3章 该书基于Redis2.9,即Redis3.0开发版编写 目录: 第一部分 数据结构与对象 01 简单动态字符串 02 链表 03 字典 04 跳 ...

  3. redis课程视频 黄建宏_求redis从入门到精通视频教程【50讲全】

    展开全部 网页链接是不是这个? 课程目录: 课时62616964757a686964616fe78988e69d83313333656565361.Redis 简介(上) 课时2.Redis 简介(下 ...

  4. 云服务器 ECS,RDS,Redis,SLB服务器建站流程

    搭建服务器网站,首先要购买一台云服务器,云服务器有很多不同的规格,分别满足不同的需求,你可以根据应用场景,不同业务负载下的性能需求来选购,选购请参考地址,java开发一般选用linux服务器 ECS配 ...

  5. 黄飞宏老师---沪师经纪刘建

    黄飞宏老师介绍 黄飞宏老师,华为管理咨询专家,和君咨询业务合伙人,清华大学.北京大学.中国人民大学.浙江大学.武汉大学等高校EMBA班和总裁班特聘导师,多家企业常年顾问. 10多年的管理和咨询工作背景 ...

  6. Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置

    0x00 Redis简介 Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值 ...

  7. Redis单机系列文章--1.Redis单机的安装和配置(含视频)

    转载请注明出处哈:http://carlosfu.iteye.com/blog/2240426   一.Redis单机下载.编译.安装: cd /opt/soft wget http://downlo ...

  8. Redis单机最大并发量

    redis单机最大并发量 布隆过滤器 多级缓存 客户端缓存 应用层缓存 Expires和Cache-Control的区别 Nginx缓存管理 服务层缓存 进程内缓存 进程外缓存 缓存数据一致性问题的解 ...

  9. redis跨服务器迁移数据

    redis跨服务器迁移数据 在此之前使用看有人用脚本做数库迁移,自己试了下,体验极差,各种问题. 现在发现了好用的方法.使用redis-port 来做,非常简单快捷 前提条件 拥有源redis服务器的 ...

最新文章

  1. java jdbc脚本_关于java:使用MySQL和JDBC运行.sql脚本
  2. 感觉没睡好就..-shenmedoumeixie....
  3. Grafana实现zabbix数据可视化展示
  4. 【分享】北漂五年,创业、字节、和阿里,现在回家
  5. php 框架测试,PHP测试框架PHPUnit组织测试操作示例
  6. 利用python画一些简单图像
  7. 第6课 - 开发中的辅助工具
  8. 香槟分校计算机研究生专业,伊利诺伊大学香槟分校计算机科学专业各大方向介绍...
  9. walking机器人入门教程-应用-全景图
  10. IJCAI 2022奖项公布:3篇杰出论文,南加大、耶拿大学等机构在列
  11. 转载:与其亡羊补牢,不如血战群狼。——2005年中兴针对华为将展开全面攻击的预测
  12. CS5801HDMI转eDP/DP转换芯片资料|CS5801规格书
  13. CTO问我,为什么需要API网关?
  14. 最近邻算法(KNN算法)
  15. 数据,数据对象,数据元素,数据项的关系图
  16. pandas使用.astype()修改数据类型
  17. SpringBoot 出现 Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported
  18. java孙膑与庞涓_《鬼谷子的局3》—— 读后总结
  19. thumbnailator图片压缩和碰见的问题修复
  20. Ubuntu 12.04 联想G470 显卡驱动安装,AMD Radeon HD 6300M Series 驱动安装

热门文章

  1. ASCII字符集详解
  2. 网页的缩放,适配以及移动的适配!
  3. 什么决定了局域网特性
  4. 中国存储器“3+1”版图初现 行业要再跑5年马拉松
  5. Lacking counting POJ.NO 2386
  6. 多设备时设置default serial的方法
  7. 【分享】女生教你怎么追MM--送给没有女朋友的来此灌水的GG们
  8. 浏览器主页被搜狗劫持如何处理
  9. XBL用于防治botnet
  10. 点选识别DLL/滑块识别DLL/通用验证码识别DLL/图标点选/本地识别DLL