2.1 Redis数据类型以及持久化

2021-03-15  本文已影响0人  MelodyOf流沙

数据类型

struct sdshdr{
     //记录buf数组中已使用字节的数量
     //等于 SDS 保存字符串的长度
     int len;
     //记录 buf 数组中未使用字节的数量
     int free;
     //字节数组,用于保存字符串
     char buf[];
}
typedf struct dict{
    dictType *type;//类型特定函数,包括一些自定义函数,这些函数使得key和
                   //value能够存储
    void *private;//私有数据
    dictht ht[2];//两张hash表 
    int rehashidx;//rehash索引,字典没有进行rehash时,此值为-1
    unsigned long iterators; //正在迭代的迭代器数量
}dict;
typedef struct intset {
 
    // 编码方式
    uint32_t encoding;
 
    // 集合包含的元素数量
    uint32_t length;
 
    // 保存元素的数组
    int8_t contents[];
 
} intset;
skiplist和红黑树和avl之间对比

持久化

RDB

全量备份,备份数据非语句。bgsave会新开一个进程进行备份生成rdb文件。系统可配置自动备份时间,并提供压缩文件。

AOF

与RDB存储某个时刻的快照不同,AOF持久化方式会记录客户端对服务器的每一次写操作命令到日志当中,并将这些写操作以 Redis协议追加保存到以后缀为aof文件末尾

Nosql对比

上一篇 下一篇

猜你喜欢

热点阅读