1.redis基本介绍
redis单机存量最大数据为7500万~8500万(开启redis虚拟内存功能),内存占用大约13G。相同数据模型,在13G内存下,redis保存的数据为8千万,memcached保存的数据为1亿;memcached写性能比redis性能要高;且达到内存上线时:memcached的只在临界点有点波动,而redis性能急剧下降(子进程dump数据及每秒产生大量页面错误),且CPU的利用率memcached相对稳定保持在150%,redis的CPU利用率达峰值前相对稳定在90%,之后CPU利用率直线下降。redis单线程运行,CPU利用率不高,故建议在同一个机器中部署多个redis。memcached由于是纯内存操作,故不会产生页面错误;而redis则会产生大量的页面错误。
2.redis数据持久化
redis宕机时间段,缓存数据量大(TB),宕机恢复数据时间短(redis支持主从复制);redis数据持久化有两大分类:RDB持久化和AOF持久化。RDB持久化有三种实现方式:(特点—保存所有数据,资源和时间耗费太大,持久化过程数据易丢失)
1.save 创建RDB文件(很快);
2.bgsave 后台子进程创建RDB文件(异步创建);
3.save time(时间维度:计数器秒) times(次数计数器)save 60 100,文件创建完成后,自动清除时间和次数计数器为0。
AOF持久化:存储redis数据库所有操作的命令集到AOF文件中
配置参数appendfsync — always、everysec、no,默认参数为everysec:每秒将缓存区里的命令写入到AOF文件里,即最多只丢失1秒的数据。为防止AOF体积过大,redis支持AOF文件的重写。(BGREWRITEAOF)