大家都知道,由于像MySQL这种数据库在应对当前这种应对大量数据集中访问的情况总是力有未逮,像网购秒杀、热点服务等,现在公司常常使用缓存数据库来代替MySQL来存储这类数据。比如说Echache、Redis、Memchache是吧。下面就说一说各自的特点和区别。
1、Redis
它是在memchache之后出现的,大家经常把这两个拿来作比较。常说Redis最大的特性就是key value store,但还支持丰富的数据类型。
(1)可持久化:redis本地持久化有两种方式,RDB和AOF。
RDB就是在指定的时间间隔后将内存中的数据集快照写入磁盘,实际过程就是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换原有文件,用二进制压缩存储。
AOF是以日志的形式记录服务器所处理的每一个写、删操作,以文本的形式记录,而查询操作不记录。
简单来说,就是数据集比较大,或操作比较密集、等待手动save,或追求高性能就采用RDB;而如果比较追求缓存一致性,可以用AOF,即使突然宕机也很难丢失数据。
(2)丰富的数据类型
支持String、set、sorted set、List 、hash等。像新浪微博采用Redis作为nosql(非关系型数据库)就是这个原因,时间排序、职能排序、我的微博等这些功能需要sorted set、list等结构的数据,redis 支持就比较好。
(3)高性能