mysql MVCC实现原理
作者:向前的步伐 / 发表: 2022年5月1日 08:42 / mysql/ 阅读量:758
MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库系统的并发性能。
MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库系统的并发性能。
redis完全基于内存操作,所以它的性能出色,而且redis有很丰富的数据类型,在电商项目中后端开发的常用redis解决性能问题。其中有序集合zset就是常用的基本数据类型之一,每个member都带有score,可用于排序相关的功能,比如:价格排序,销售额排序等等。
redis是一种key-value型的内存数据库,它所有的key都是字符串,而value常见的数据类型有五种:string、list、set、zset、hash。redis的这些数据结构, 在底层都是使用redisObject来进行表示。redisObject中有三个重要的属性, 分别是type、 encoding 和 ptr。
微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。
哨兵是redis提供的一种高可用的方式,哨兵是一个独立的进程,通过发送命令、等待redis服务响应,从而实现集群的监控和故障的转移。它的原理的实现主要包括哨兵的三个定时任务、主观下线和客观下线、哨兵的领导者选举、故障转移。
当系统前期的访问人数不多的时候,单机服务器就可以满足用户的需求,随着人数的增加,系统的压力不断增大,单机的服务器就会出现瓶颈,这是就需要对系统进行拆分,减少单台服务器的压力,提到系统的并发处理能力。
Elastic Stack(旧称ELK Stack),是一种能够从任意数据源抽取数据,并实时对数据进行搜索、分析和可视化展现的数据分析框架。ELK是由 Elasticsearch、Logstash和Kibana 三部分组件组成。
Flask框架也是基于WSGI网关进行的开发,所以这个应用也可以叫WSGI应用,依赖于底层库werkzeug。对于WSGI网关,要求Web应用实现一个函数或者一个可调用对象webapp(environ, start_response)。服务器或网关中要定义start_response函数并且调用Web应用。