Redis特性:
•速度快:官方给出10万QPS,即每秒可以进行10万次读写操作,其为理想化;实际应用工作中,万级QPS是没有问题,具体要看使用方法与应用的数据结构;
1.数据不落地,直接存储在内存中;
2.使用C语言开发,只有5到6万行代码;
3.redis的线程模式是单线程(数据存储内存中,使用单线程效率高,多线程会操作内存瓶颈,线程间切换会浪费过多资源);
•持久化:rides数据存储在内存中,重启就会消失,为了解决此问题,redis在将数据保存在内存的同时,会将数据异步的保存到磁盘,磁盘在实际生产环境要做高可用(rd5,rd10);
1.RDB:快照保存,Fork一个进程,遍历HashToble,利用CopyOnWrite的方式把整个DB都down补下来保存到磁盘中,redis的save命令,shutdown命令都会触发RDB操作即down补操作,如果redis宕机就无法执行这些操作了;
2.AOF:重写日志,把写的指令持续的放入AOF文件中,只记录写的操作,相对而言比RDB小很多,日志写操作,日志恢复;
•多种数据结构:redis基于key-value存储,不同于其他nosql数据库的是其提供了5中数据结构,包含字符串、列表、Hash、集合、有序集合,新版本中支持了更多的拓展数据结构,例如,bitmap等等;
•支持多种编程语言:开源,生态圈很广;
•功能丰富:
1.发布订阅,可以像MQ一样,做到基于消息的功能;
2.支持脚本,录入脚本可以做多组合操作;
3.简单事务,无法回滚
•简单:
1.源代码轻便,可以快速理解;
2.不依赖其他第三方库文件;
3.单线程模型;
•主从复制 :高可用和分布式的基础;
•高可用、分布式 :2.8之后提供哨兵模式,支持高可用;