Redis

1.Redis对象数据类型

        String: 字符串

        list: 列表

        set: 去重集合

        zset: 有序列表

        hash: 字典

2.编码类型

        

encoding常量底层的数据结构
REDIS_ENCODING_INTlong类型的整数
REDIS_ENCODING_EMBSTRembstr编码的简单字符串
REDIS_ENCODING_RAW简单动态字符串
REDIS_ENCODING_HT字典
REDIS_ENCODING_LINKEDLIST双项链表
REDIS_ENCODING_ZIPLIST压缩列表
REDIS_ENCODING_INTSET整数集合
REDIS_ENCODING_SKIPLIST跳表和字典

    String类型对象所对应的编码:

REDIS_ENCODING_INTlong类型的整数
REDIS_ENCODING_EMBSTRembstr编码的简单字符串
REDIS_ENCODING_RAW简单动态字符串

    list类型对象对应的编码:

REDIS_ENCODING_LINKEDLIST双项链表
REDIS_ENCODING_ZIPLIST压缩列表

     set类型对象对应的编码:

REDIS_ENCODING_HT字典
REDIS_ENCODING_INTSET整数集合

     zset类型对象对应的编码:

REDIS_ENCODING_ZIPLIST压缩列表
REDIS_ENCODING_SKIPLIST跳表和字典

   hash类型对象对应的编码:

REDIS_ENCODING_HT字典
REDIS_ENCODING_ZIPLIST压缩列表

3.String类型对象

        常用命令

      

         编码类型:

                1.int: long类型整数

                2.embstr: 适用于当存入的值小于等于40个字节的字符串,该编码仅可读模式,对使用append 命令对值进行修改时,无论当前字符串的长度为多少,其内部编码都将转换为raw

                3.raw: 存入的字符串超过44个字节时将转换为raw编码

        embstr:效率快,通过一次内存分配函数,来分配一块连续的空间包含redisObject,sdshdr

        raw: 通过两次内存分配函数,分别来创建redisObject,sdshdr

4.list类型对象

        常用命令:

         列表操作:

        

         编码类型:

                1.ziplist(压缩列表): 当元素长度不超过512或者单个元素的大小不超过64字节,list类型的键值对就会使用ziplist作为内部编码,在对应的配置文件中也可以调整对应的阈值

                2.linkedlist(双项链表): 当元素长度超过512或单个元素长度超过64时,键值对就会采用linkedlist作为其内部编码

5.set类型对象

        常用命令:

        

        编码类型

                1.intset: 当存入集合的成员都是整数并且成员数不超过512条时,其内部编码使用intset

                2.hashtable: 当存入集合的数据不满足intset的条件时将自动转换为hashtable,每个键都是String类型,对应的value都为NULL

 6.zset类型对象

        常用命令:

         编码类型: 

                    ziplist: 默认当存入集合的成员数不超过128个且成员的最大字节数不超过64时,使用的ziplist的内部编码

                    skiplist(跳表): 当不满足设定的阈值时,zset的内部编码将自动转换为skiplist

6.hash类型对象

        常用命令:

         编码类型:

                1.ziplist: 当hash类型中每个value的长度不超过64字节,并且filed-value长度不超过512

         2.hashtable:  当ziplist编码的hash类型键值对超过任一阈值时,其内部编码就会转换为hashtable

7.RDB

       redis一种持久化机制,支持手动和服务器定时自动执行,执行之后产生一个二进制文件保存的数据,然后再服务器启动的时候把二进制文件加载到服务器

        手动: save/bgsave

 

        自动保存时机:

redis.conf中默认配置

save 900 1   ==>  900秒以内执行了一次修改,进行RDB保存
save 300 10   -->  300秒10次修改
save 60 10000 ==> 60秒10000次修改

8.AOF(Append Only File)

           记录redis命令来记录数据库(redis服务器)的变更

           redis.conf中默认关闭状态

写入流程: 用户在写入的时候,会将数据先写入缓冲区

AOF备份缓冲区数据

 appendfsync everysec:  每秒将aof_buf中的数据保存到AOF文件中

   

AOF重写

        为了避免执行多条无效的命令,就可以实现数据的还原

执行流程:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值