1启动redis的3种方式
- 第2 3 种都可以·1通过改端口号来启动多个redis服务端
1.1自动启动
- redis-server
- redis-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基本操作