特点
比sql快百倍
特殊的数据结构
缓存
解决分布式session 分布式锁 支持集群
nosql数据库:redis mogodb
redis持久化:
1.RDB 快照.
新开子线程进行持久化,新快照生成之前数据可能丢失,有可能丢失比较多的数据
save 持久化的时候其他客户端无法访问,但不需要开启子进程,持久化的速度更快
bgsave 持久化的时候其他客户端可以访问
2.AOF 只追加文件:会把写命令写到文件中
它可以做到丢失最多1s的数据
复制:一主两从 哨兵模式 1 master 2 slave
尽量不要在主机中做持久化工作,一般在从节点开启aof持久化的同时其他客户端还可以进行访问,持久化的速度更慢些.
主节点主要进行响应客户端请求,所以一般不在主节点做持久化工作.持久化工作可以交给从节点去做
缺点:
aof 可能造成很大的aof持久化文件,我们可以重写aof文件,开始子进程重写,把冗余的命令去除,这样文件太大的问题就会改善,但文件还是很大,恢复数据的时候就会比较慢.
redis.config属性含义:
append only:是否开始AOF的持久化机制
appendfsync always 总是同步,这种方法数据安全性更高,几乎不用.
缺陷:频繁的写入少量数据,造成磁盘写入放大问题,磁盘寿命会少很多
appendfsync everysec 每秒持久化一次,有可能丢失一秒的数据
appendfsync no 由操作系统决定什么时候持久化,也不用
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
表示如果文件大小达到64MB并且比上次重写之后文件大100%的时候, 进行重写,如果不想频繁的重写,把文件配置写大点即可.
重写的时候,如果文件比较大 ,生成重写后的文件,删除重写之前的旧文件,如果是在主节点做aof重写, 有可能造成服务不能正常使用