• Redis5设计与源码分析 (第1章 引言)


    1.1 Redis 简介

    Redis的主要版本如下。

    120095月发布Redis初始版本。

    22012年发布Redis 2.6.0

    3201311月发布Redis 2.8.0

    420154月发布Redis 3.0.0,该版本引入了集群。

    520177月发布Redis 4.0.0,该版本引入了模块系统。

    6201810月发布Redis 5.0.0,该版本引入了Streams结构。

    Redis在互联网数据存储方面应用广泛,主要具有以下优点。

    1Redis是内存型的数据库,也就是说Redis中的key-value对是存储在内存中的,因而效率比磁盘型的快。

    2Redis的工作模式为单线程,不需要线程间的同步操作。Redis采用单线程主要因为其瓶颈在内存和带宽上,而不是CPU

    3Rediskey-valuevalue不仅可以是字符串,也可以是复杂的数据类型,如链表、集合、散列表等。

    4Redis支持数据持久化,可以采用RDBAOFRDB&AOF三种方案。计算机重启后可以在磁盘中进行数据恢复。

    5Redis支持主从结构,可以利用从实例进行数据备份。

    1.2 Redis 5.0的新特性

    1)新增Streams数据类型,这是Redis 5.0最重要的改进之一。可以把Streams当作消息队列,详细内容参见后续章节。

    2)新的模块API、定时器、集群及字典。

    3)RDB中持久化存储LFU和LRU的信息。

    4)将集群管理功能完全用C语言集成到redis-cli中,Redis 3.x和Redis 4.x的集群管理是通过Ruby脚本实现的。

    5)有序集合新增命令ZPOPMIN/ZPOPMAX。

    6)改进HyperLogLog的实现。

    7)新增Client Unblock和Client ID。

    8)新增LOLWUT命令。

    9)Redis主从复制中的从不再称为Slave,改称Replicas。

    10)Redis 5.0引入动态哈希,以平衡CPU的使用率和相应性能,可以通过配置文件进行配置。Redis 5.0默认使用动态哈希。

    11)Redis核心代码进行了部分重构和优化。

    1.3 Redis源码概述

    Redis源代码的核心部分主要如下。

    1)基本的数据结构

    ·动态字符串sds.c

    ·整数集合intset.c

    ·压缩列表ziplist.c

    ·快速链表quicklist.c

    ·字典dict.c

    ·Streams的底层实现结构listpack.crax.c

    2Redis数据类型的底层实现

    ·Redis对象object.c

    ·字符串t_string.c

    ·列表t_list.c

    ·字典t_hash.c

    ·集合及有序集合t_set.ct_zset.c

    ·数据流t_stream.c

    3Redis数据库的实现

    ·数据库的底层实现db.c

    ·持久化rdb.caof.c

    4Redis服务端和客户端实现

    ·事件驱动ae.cae_epoll.c

    ·网络连接anet.cnetworking.c

    ·服务端程序server.c

    ·客户端程序redis-cli.c

    5)其他

    ·主从复制replication.c

    ·哨兵sentinel.c

    ·集群cluster.c

    ·其他数据结构,如hyperloglog.cgeo.c

    ·其他功能,如pub/subLua脚本

    1.4 Redis安装与调试

    省略.

    1.5 本章小结

    省略.

  • 相关阅读:
    Nodejs-内置核心模块&npm包管理工具

    python 内置函数
    序列化和反序列化(json 和pickle)dumps 为序列化, json为反序列化
    迭代器iter()
    生成器 yield
    装饰器的解释说明
    面向过程中的局部变量(global)
    函数的参数设定
    集合的基本操作
  • 原文地址:https://www.cnblogs.com/coloz/p/13812818.html
Copyright © 2020-2023  润新知