MySQL-SQL执行流程

MySQL-SQL执行流程在《MySQL-逻辑架构》这篇文章中说到了MySQL的逻辑架构,那么MySQL的SQL执行流程是怎么样的呢?从MySQL的逻辑架构可以看出MySQL中的SQL执行流程可以是这样的:#render755929009 {font-family:"trebuchet ms",ve

MySQL-逻辑架构

MySQL-逻辑架构MySQL是一个典型的C/S架构,也就是Client/Server结构,服务端就是mysqld。不论客户端进程和服务器进程是采用的哪种方式通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(SQL语句),服务器进程处理后再向客户端进程发送一段文本(处理结果)。这里以一个

Redisson

Redisson首先是来自Redis官网的分布式锁的说明:在不同进程必须以互斥的方式使用共享资源的环境中,分布式锁是一个非常有用的元素。有许多库和博客文章描述如何使用Redis实现DLM(分布式锁管理器),但每个库都使用不同的方法,并且许多库使用简单的方法。与稍微复杂的方法相比,保证较低的设计。我们

Redis实现分布式锁

Redis实现分布式锁Redis除了用来作为缓存,还有哪些其他的用途呢?分布式锁:在分布式系统中,为了保证数据的正确性,经常需要使用分布式锁。Redis提供了setnx和expire等操作,可以实现分布式锁的功能。使用Redis作为分布式锁可以有效地解决多个进程或者多台机器之间的竞争问题,从而提高系

缓存双写一致性问题

缓存双写一致性问题首先缓存双写一致性是指缓存和数据库中的数据保持一致。当修改数据库中的数据时,需要同时修改缓存中的数据,以保证两者的一致性。如果只修改了数据库中的数据,而没有及时更新缓存,会导致缓存中的数据与数据库中的数据不一致,进而影响系统的正确性和性能。一般使用缓存的流程可以是这样:#rende

MoreKey & BigKey

MoreKey & BigKeyMoreKey问题假如现在Redis服务上有100W条记录,如何遍历?keys *可以吗?模拟大量的key首先要在Redis里面插入100W条记录,这里先生成一个临时文件使用命令:for((i=1;i<=100*10000);i++); do echo

Redis是单线程还是多线程

Redis是单线程还是多线程要说Redis是单线程还是多线程实际要看实际版本Redis的版本有很多,其架构也是不一样的。在Redis3的时候是单线程。从Redis4开始,严格意义上来说已经不是单线程了,而是负责处理客户端请求的线程是单线程,但是开始加了点多线程的东西。Redis6和Redis7彻底的

Redis淘汰策略

Redis淘汰策略Redis的最大占用内存如何查看Redis最大占用内存?在配置文件中可以找到配置项maxmemory <bytes>:# 设置内存使用限制为指定的字节数。# 当达到内存限制时,Redis将根据所选的淘汰策略尝试删除键。## 如果Redis无法根据策略删除键,或者策略设置

布隆过滤器

布隆过滤器BloomFilter布隆过滤器(Bloom Filter)是在1970年由布隆提出的。Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个

Redis集群(Cluster)-部署

Redis集群(Cluster)-部署开始部署本文使用docker在一台机器上部署6台Redis[3主3从]创建6个目录新建6个文件夹:mkdir redis1 redis2 redis3 redis4 redis5 redis6。修改配置文件# 端口号修改这里分别位 6371 6372 6373