• Redis 总结


    这篇是个人对Redis的总结,供日后参考。

    参考:

         redis 菜鸟教程:http://www.runoob.com/redis/redis-tutorial.html

      redis 内部数据结构详解:https://zhuanlan.zhihu.com/p/21368183?refer=zhangtielei

      redis 原理方法双管齐下:https://yq.aliyun.com/articles/67122

    一、定义

    • REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
    • Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
    • 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

    二、数据结构

      (图片来自 https://yq.aliyun.com/articles/67122)

    所有redis 对象都被封装成RedisObject,其中type 表示对象类型,ecoding 表示编码方式,其中type 具体类型包括下图五种类型:

    (图片来自 https://yq.aliyun.com/articles/67122)

       其中redis,分为两个层面的数据结构

        第一层提供给使用者的数据结构:分为 string,list,set,hash,sorted set(如上图所示)

        第二层内部具体实现:dict(ht),sds,ziplist,qucklist,skiplist,其中具体对应关系如下图:

        (图片来自 https://yq.aliyun.com/articles/67122)

         举个例子:redis>set  str "123"       其中key:“str”,value:"123",其中创建了两个redisobject对象,一个是字符串类型的key,一个是字符串类型的value。

    其中redis数据库又是通过dict存储所有键值对的,所有的key都是字符串的对象,value可以是字符串对象、哈希对象、列表对象等

          

        

    三、内存管理(淘汰策略)

      如果设置了最大内存,当数据保存超过最大内存时会根据设置的淘汰策略删除超出的数据(如果没有设置淘汰策略,则会所有请求全部返回错误)。具体淘汰策略如下:

      (图片来自 https://yq.aliyun.com/articles/67122)

    四、内存分析

      目标:提取业务特点,了解业务平静,发现业务bug;

      方法1:离线分析法(redis-rdb-tool)

          ①生成rdb文件(bgsave)②生成内存快照 ③分析内存快照。 其中生成的内存快照为csv格式,

          其中数据  database :数据库id,type:数据类型,key:key,size_in_bytes:理论内存值,ecoding:编码方式,num_elements:成员个数。

          可以将csv导入数据库可以查询来分析数据

      方法2:线上分析法(不推荐)具体参考:https://yq.aliyun.com/articles/67122

        

      

  • 相关阅读:
    的地方d'fe'w
    日期
    equals方法
    接口作为成员变量类型
    匿名内部类注意事项
    匿名内部类
    局部内部类注意问题
    可以
    C中的volatile关键字
    继承权限问题
  • 原文地址:https://www.cnblogs.com/spaceud/p/8922322.html
Copyright © 2020-2023  润新知