一、redis 主要的data type
- redis 的原生客户端
- redis 支持通过python php golang 等语言连接
- redis 主要适用场景
二、redis如何进行数据存储
- 非关系数据库 不使用二维表 redis 使用键值对完成数据的存储
- redis一共有16个库 ,不同的库使用编号 0-15
- redis 在存储每一个键值对的时候,为键分配对应的slot
- redis优先在内存中完成数据的读取 写入 修改等操作 // redis 数据操作速度很快
- redis的服务端进程在运行期间向操作系统申请内存,保存数据,一旦服务端进程停止,操作系统给进程分配的内存等系统资源都会回收,重新启动redis 服务端之后,进程再次向操作系统申请内存,操作系统将给进程 分配新的内存页,如果redis只在内存中保存数据那么就很容易发生数据丢失。内存属于易失性存储。
- 基于5的问题,redis 提出了数据持久化的策略
- rdb redis database 对数据进行快照,并保存到指定文件,再重启后从指定的快照文件恢复数据
- rdb 持久化在大部分情况下都是默认启用
- save 时间:以秒为单位 次数:数据变更操作的次数 //在规定时间间隔中,数据变更的次数达到指定次数,则对redis进行快照.快照由bgsave 指令完成
- rdb文件名称 rdbfilename
- 文件的保存位置 dir
- 在每一次redis 服务端进程停止的时候,自动执行一个bgsave 更新rdb数据快照
- aof append only file 持续追踪redis数据变更,并将数据变更的指令写入aof文件中,所以aof 文件实际是记录redis数据操作的日志文件
- aof持久化在更新aof文件,有三种策略 appendfsync
- no 使用操作系统默认时间设置更新AOF文件,一般在linux操作系统中为半个小时 更新需要的时间更久,也比较容易发生数据丢
- aof持久化在更新aof文件,有三种策略 appendfsync
- rdb redis database 对数据进行快照,并保存到指定文件,再重启后从指定的快照文件恢复数据