存储系统使用感悟

每一个应用系统都会使用存储,把存储理解掌握清晰,并将合适的存储使用在合适的场景下不是一件容易的事。

1 当下事务做的最好的依然是关系数据库,如果业务是订单 支付等,还是用关系数据库,不要给自己找麻烦。

2 关系数据库是很强大的,但关系数据库不是银弹,不能解决所有存储问题。

3 文档数据库值得研究比如mongodb。

4 缓存是提升性能重要方式,无论是服务本地缓存,还是分布式缓存集群。

5 redis是很棒的分布式缓存,但是不能当黑盒用,需要了解每种数据结构的时间复杂度,空间复杂度,业务系统越复杂,并发量越大,越要多详细理解redis架构,不然会碰的灰头土脸。

6 能不用分布式存储系统,尽量就不要用,如果要用就要方方面面尽量了解清楚仔细,不然总会引入bug。

7 缓存所有数据不是一个好方法,尽量要用lru缓存。

8 redis存储数据不要有大key或者大value,redis单线程架构很容易被堵塞。

9 分布式事务是一件极其复杂的事情。

10 数据存储要提前进行规划,并且要管理清晰,不然很容易没用的数据留在存储中,浪费存储空间。

11 内存 ssd 机械磁盘是大规模数据降低成本方式。

12 hbase读的性能还是比较差。

13 es不是一种存储,跳跃表的时间复杂度很高,数据存储在里面,搜索出来2ms,除非数据特别少,几千条,否则怎么可能2ms,用一种存储要深入的掌握他。

14 合适的场景用合适的存储,图数据库可以深入研究,看是否适合推荐引擎。

15 存储没有银弹,关系数据库适合强事务场景,分布式缓存解决高并发,文档数据库在互联网业务场景下更灵活。

16 如果来源的存储都满足不了业务要求,就需要自己研发,储存研发需要大量的时间以及高水平研发人员,并且需要严格构建流程,严格的研发规范,编码规范,需要全面的测试用例,压力测试性能测试,以及自动化测试工具,如无必要不要自己研发。

对于存储一点感悟,希望对大家有点启发。