Redis的特点
redis:是非关系型数据库(nosql),基于内存读写的数据库,采用的是K-Y的形式存储数据
为什么说redis的速度快
1.完全基于内存
2.底层是使用C语言实现的
3.单线程模式,避免线程切换开销以及多线程竞争问题
a)单线程仅仅是说在网络请求这一模块上用一个请求处理客户端的请求,像持久化就会重新开一个线程/进程去进行处理
4.网络层使用epoll解决高并发问题,不在网络上浪费时间
Redis的两种持久化机制
AOF日志:AOF持久化是指所有的命令行记录以Redis命令请求协议的格式保存aof文件
优点
1.数据安全AOF持久化可以配置appendfsync属性,有always,没进行一次命令操作就记录到aof文件中一次everySec就是每秒内进行一次文件写的操作;no就是不进行aof文件的写操作
2.通过append模式写文件,即使中途服务器宕机,可以通过redis-check-aof工具解决数据一致性问题。
缺点
1.文件会比RDB形式的大
2.数据集大的时候,回比RDB启动效率低
RDB快照:RDB持久化是指用数据集快照的方式记录Redis数据库的所有键值对
优点
1.只有一个dump.rdb方便持久化
2.容灾性好,一个文件可以保存在安全的磁盘
3.性能最大化,fork子进程来完成操作,让主进程继续执行命令,所以是IO最大化
4.相对于数据集大时,启动效率比AOF更高
缺点
1.fork子进程时可能会导致服务器停机一秒,数据集太大了
2.数据安全性低,通过配置save参数来达到定时的写快照,执行速度快所以说如果服务器出现宕机情况将会出现数据丢失
Redis在项目中的应用场景
1.redis+Mybatis = 分布式的二级缓存
2.redis + 阿里短信验证码存储
原文:https://www.cnblogs.com/ruirui8023/p/11397088.html