首页 > 数据库 >redis设计与实现(一) redis概念和数据结构

redis设计与实现(一) redis概念和数据结构

时间:2022-12-25 16:22:54浏览次数:59  
标签:AOF 持久 redis Redis 链表 概念 RDB 数据结构

基础概念

         定义

             Redis(Remote Dictionary Server)是一个使用 C 语言编写的,高性能非关系型的键值对数据库

         特点

    •  基于内存操作
    •  单线程,高并发
    •  支持多种数据类型
    •  支持持久化

            访问速度比对:

                      

                                   Q:什么样的代码容易命中缓存? https://blog.csdn.net/Murphy_CoolCoder/article/details/89478391

                         io模型

             

            

                     数据类型

                      

                      SDS:

                     

                     dict:

                     

                      解决哈希冲突:渐进式rehash

                      skiplist:

                    跳表可以看成多层链表,它有如下的性质:

    • 多层的结构组成,每层是一个有序的链表
    • 最底层的链表包含所有的元素
    • 跳跃表的查找次数近似于层数,时间复杂度为O(logn),插入、删除也为 O(logn) (类似二分查找)

 

                     在这里插入图片描述

                       ziplist:

                     

                     quicklist:

                      链表+压缩列表

                      

                      使用场景
                      string:1、常规key-value缓存应用。常规计数。2、分布式锁。
                      hash:存放结构化数据
                      list:热门列表、消息队列系统。
                      set:1、好友关系  2、利用唯一性,统计访问网站的所有独立ip 。
                      zset:1、排行榜;2、优先级队列。

                      RDB:

                      RDB 是 Redis 默认的持久化方案。RDB持久化时会将内存中的数据写入到磁盘中,在指定目录下生成一个dump.rdb文件。Redis 重启会加载dump.rdb文件恢复数据。

                      

                      AOF:

                      AOF(append only file)持久化:以独立日志的方式记录每次写命令,Redis重启时会重新执行AOF文件中的命令达到恢复数据的目的。AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。

                     

                     其他优点:

                     1.支持主从复制。从而实现读写分离,降低负载均衡

                     2.提供哨兵机制。达到高可用的故障转移。

标签:AOF,持久,redis,Redis,链表,概念,RDB,数据结构
From: https://www.cnblogs.com/Duikerdd/p/17004157.html

相关文章