Redis:
redis是一款C语言开发的一个开源的基于内存的高性能键值对数据库(非关系型数据库);
- 存储的数据结构为:key - value格式的数据;
– key的类型均为字符串;value的类型有五种:string 字符串类型,hash哈希类型(map格式),list(linkedlist格式,可重,有序),set (元素不可重且无序),sortedset(元素不可重,且有序:是通过分数来为集合中成员进行从小到大的排序)。 - 数据存储在内存中;
- 数据和数据之间没有任何关系;
优点:
- 查询快,性能高,成本低,可存储基本数据类型,对象,集合等各种格式,拓展性好,数据之间么有耦合,非常容易水平拓展,
缺点:
- 维护的工具和资料有限,不提供对SQL的支持,不提供关系型数据库对事务的处理。
一般使用非关系型数据库缓存关系型数据库的数据,可减少对关系型数据的频繁操作,提升程序的性能。而使用关系型数据库持久化存储应用程序数据,使用非关系型数据库备份存储。
redis的持久化机制:
因为redis是一个内存数据库,当redis服务器重启,数据会丢失,所以需要通过一种持久化机制,定期地将redis中存储在内存中地数据,持久化存储到硬盘上。
- RDB:默认方式。不需要配置。是在一定时间间隔中,检测key的变化情况,然后持久化数据(生成一个.rd为后缀的文件),redis.window,conf文件中修改配置,重启服务生效。
- AOF: 日志记录的方式,默认关闭,需要通过配置开启,appendonly no,将no改为yes.则开启AOF持久化机制,然后编辑apendfsync always(每一次操作都持久化)\everysec(每一秒持久化一次)\no(不进行持久化)。