KV数据库

Redis入门-架构篇

一笑奈何 提交于 2019-12-09 22:27:09
关系代数的RDB,发展了很多年,很多成熟的产品和技术;K-V的redis,现在到了3.x,支持lua脚本、订阅、集群等;图形的neo4j,还有支持分布式的titan;文档数据库mongodb,换装wt引擎后更强劲; 还有hbase、cassandra等列式数据库,在大数据方向蛮火;最后,别忘了文件系统,nfs、fastdfs、gridfs等,好多东东,整吧,你已经上了贼船。 来张redis的图: 其实redis的核心就是内存存储、以及大量应用了map这种数据结构,虽说达不到O(1),但内存会肯快,相比网络IO; 数据结构,比memcache丰富得多,list、map、set、有序set、bitmap,而且具体的数据结构实现有linkedlist、ziplist、intset、skiplist、hashtable等,你可以兼顾内存消耗与效率。 日志:RDB一次性dump,AOF缓冲区,按策刷盘,高并发还是用aof的; 事务:redis引擎虽说是单线程的,但不保证ACID事务,当然lua脚本很灵活; 主从:主动复制模式,支持树状结构,全量复制和部分复制; 高可用:主客观下线、哨兵选举、故障转移,那个sentinel选举就是paxos的简化版; 集群:gossip协议配置更新,支持集群的伸缩,就是槽位的变化,当然最好配合smart客户端。 有观点认为redis支持事务,但你muti的命令