最全redis高级(二)

    技术2026-01-28  9

    文章目录

    1启动redis的3种方式1.1自动启动1.2指定端口启动1.3指定配置文件启动 2持久化2.1持久化简介2.2RDB2.2.1save指令启动2.3.1.1save相关的配置2.2.1.2save指令原理2.2.1.3save指令的缺陷 2.2.2bgsave指令启动2.2.2.1bgsave工作原理2.2.2.2bgsave指令相关的配置 2.2.3配置文件启动2.2.3.1相关配置2.2.3.2配置文件工作原理 2.2.4三种启动方式的对比2.2.5RDB特殊启动方式2.2.6RDB优点和缺点 2.3AOF2.3.1基本操作2.3.1.1写数据过程2.3.1.2写数据策略2.3.1.3AOF功能开启2.3.1.4AOF相关的配置 2.3.2重写2.3.2.1为什么需要重写2.3.2.2重写概念和作用2.3.2.3重写规则2.3.2.4重写方式 2.3.3手动重写原理2.3.4自动重写方式2.3.5重写流程 2.4 RDB和AOF区别2.5RDB和AOF如何选择2.6 持久化应用场景 3事务3.1什么是事务3.2事务的基本操作3.2.1取消事务3.2.2事务的基本流程3.2.3事务的注意事项 3.3锁3.4分布式锁3.4.1什么是分布式锁3.4.2死锁的发生和解决 4删除策略4.1过期数据4.1.1时效数据的存储结构 4.2数据删除策略4.2.1定时删除4.2.2惰性删除4.2.3定期删除4.3.4三个策略的对比 4.3逐出算法4.3.1为什么需要数据的逐出4.3.2数据逐出的相关配置4.3.3数据逐出的八种策略4.3.4数据逐出的配置的依据 5redis配置文件5.1服务端设定5.2日志配置5.3客户端配置5.4为多个服务器配置文件配置相同部分 6高级数据类型6.1Bitmaps6.1.1基础操作6.1.2扩展操作6.1.3应用场景 6.2 HyperLogLog6.2.1什么是基数6.2.2LogLog算法6.2.3基本操作6.2.4注意事项 6.3CEO6.3.1基本操作

    1启动redis的3种方式

    第2 3 种都可以·1通过改端口号来启动多个redis服务端

    1.1自动启动

    redis-serverredis-cli

    1.2指定端口启动

    1.3指定配置文件启动

    配置文件 服务端启动 客户端连接 日志部分

    2持久化

    2.1持久化简介

    2.2RDB

    2.2.1save指令启动

    客户端连接执行一下save命令 配置文件和上方一样 - 根据配置文件的设定 在服务文件保存的目录中生成rdb文件 这个文件中存放save命令所得到的快照 这个快照就是持久化的基本

    2.3.1.1save相关的配置

    2.2.1.2save指令原理

    2.2.1.3save指令的缺陷

    2.2.2bgsave指令启动

    2.2.2.1bgsave工作原理

    2.2.2.2bgsave指令相关的配置

    2.2.3配置文件启动

    2.2.3.1相关配置

    2.2.3.2配置文件工作原理

    2.2.4三种启动方式的对比

    2.2.5RDB特殊启动方式

    2.2.6RDB优点和缺点

    2.3AOF

    2.3.1基本操作

    2.3.1.1写数据过程

    2.3.1.2写数据策略

    2.3.1.3AOF功能开启

    2.3.1.4AOF相关的配置

    2.3.2重写

    2.3.2.1为什么需要重写

    2.3.2.2重写概念和作用

    2.3.2.3重写规则

    2.3.2.4重写方式

    自动重写是在配置文件中写入一下信息而手动重写是在客户端输入bgrewriteaof命令

    2.3.3手动重写原理

    2.3.4自动重写方式

    2.3.5重写流程

    2.4 RDB和AOF区别

    2.5RDB和AOF如何选择

    2.6 持久化应用场景

    3事务

    3.1什么是事务

    3.2事务的基本操作

    3.2.1取消事务

    3.2.2事务的基本流程

    3.2.3事务的注意事项

    3.3锁

    3.4分布式锁

    3.4.1什么是分布式锁

    3.4.2死锁的发生和解决

    4删除策略

    4.1过期数据

    数据删除与否取决于配置文件的删除策略

    4.1.1时效数据的存储结构

    在每个库中都有一个expires空间 ,这个空间存放这有时效性数据的key对应value的地址以及key的有效时间

    4.2数据删除策略

    4.2.1定时删除

    4.2.2惰性删除

    每次当客户端get任何数据都会调用expirelfNeeded()这个函数。这个函数可以判断数据是否过期。如果过期删除expires以及value的空间

    4.2.3定期删除

    通过info指令可以在客户端看到server.hz的值。server.hz的值表示秒执行serverCron()函数多少次。serverCron函数可以调用databaseCron对整个数据库16个分库的expires进行更新,而databaseCron函数调用activeExpireCycle函数对一个分库一个分库进行更新。

    4.3.4三个策略的对比

    redis数据库使用的是惰性删除和定期删除。

    4.3逐出算法

    4.3.1为什么需要数据的逐出

    4.3.2数据逐出的相关配置

    4.3.3数据逐出的八种策略

    4.3.4数据逐出的配置的依据

    5redis配置文件

    5.1服务端设定

    5.2日志配置

    5.3客户端配置

    5.4为多个服务器配置文件配置相同部分

    6高级数据类型

    6.1Bitmaps

    Bitmaps 是一个以bit为操作单位的数据类型 ,所以你取值时一定要知道value在key的偏移量

    6.1.1基础操作

    6.1.2扩展操作

    6.1.3应用场景

    6.2 HyperLogLog

    用于做基数统计

    6.2.1什么是基数

    6.2.2LogLog算法

    6.2.3基本操作

    6.2.4注意事项

    6.3CEO

    存储多个坐标的数据结构

    6.3.1基本操作

    Processed: 0.010, SQL: 9