- 博客(64)
- 收藏
- 关注
原创 2、寸口对应六气
少阳也,六气为相火,在卦为坎,偏右尺,一阳藏于二阴之中,为凝聚之象,然坎中一阳为左路生发之推动力,故曰相火以位,主升散,则厥阴能合太阴,阳载阴升。少阴也,六气为君火,在卦为离,偏左寸,外二阳而内一阴,为发散之象,然离中一阴为右路降敛之推动力,故日君火以明,主降敛,则阳明能合太阳,阴覆阳降。太阳也,六气为寒水,在卦为巽,居左,偏左关,主阳之开,太阳之开外升,阳明合之。太阴也,六气为湿土,在卦为艮,居右,偏右关,主阴之开,太阴之开内降,厥阴合之。左寸右尺为少阴少阳之枢,枢为转动之轴,是左右升降开合之推动力。
2025-03-09 10:09:02
217
原创 1 、六气概念-六气内涵
有六气:厥阴风木、少阴君火、少阳相火、太阴湿土、阳明燥金、太阳寒水,属于6分法。皮外为表,皮内为里。表为太阳,里为少阳,皮毛为阳明,主半表半里。外连太阴,内连少阴,筋膜为厥阴,主半内半外。六气者,风、火、暑、湿、燥、寒。五行者,木、火、土、金、水⋯•。风者,厥阴木气之所化也。在天为风,在地为木........在天为暑,在地为火.......在天为湿,在地为土.......在天为燥,在地为金.......在天为热,在地为火......寒者,太阳水气之所化也。三阳有表里之分,三阴有内外之别。
2025-03-08 11:02:31
256
原创 MongoDB Chunks核心概念与机制
:当分片间Chunk数量差异≥9时,Balancer自动迁移Chunk以实现负载均衡。函数指定片键值强制拆分,适用于预分片(Pre-splitting)优化场景。新分片的集合默认生成一个覆盖全片键范围()的Chunk,存储在。
2025-03-04 22:55:40
310
原创 centos7使用rpm包安装mysql5.6和mysql8.0
5、安装mysql server和mysql client。2、从mysql官网下载rpm安装包。4、解压rpm-bundle.tar。2 从mysql官网下载rpm安装包。4 解压rpm-bundle.tar。1、查看并卸载 mariadb。1、查看并卸载 mariadb。按以下顺序安装rpm包。5 安装mysql(
2025-02-27 19:29:49
750
原创 Mongodb存储特性与内部原理
一、存储引擎(Storage) mongodb 3.0默认存储引擎为MMAPV1,还有一个新引擎wiredTiger可选,或许可以提高一定的性能。 mongodb中有多个databases,每个database可以创建多个collections,collection是底层数据分区(partition)的单位,每个collection都有多个底层的数据文件组成。(参见下文data files存储原理) wiredTiger引擎:3.0新增引擎,官方宣称在read、insert
2025-01-09 21:51:11
1109
原创 Mongodb中Sharding集群
随着mongodb数据量的增多,可能会达到单个节点的存储能力限制,以及application较大的访问量也会导致单个节点无法承担,所以此时需要构建集群环境,并通过sharding方案将整个数据集拆分成多个更小的chunk,并分布在集群中多个mongod节点上,最终达到存储和负载能力扩容、压力分流的作用。在sharding架构中,每个负责存储一部分数据的mongod节点称为shard(分片),shard上分布的数据块称为chunk,collections可以根据“shard key”(称为分片
2025-01-09 21:43:30
1105
2
原创 mongodb配置文件详解
wiredtiger将使用所有数据的最大缓存大小,wiredTiger缓存工作集(working set)数据的内存大小,单位:GB,此值决定了wiredTiger与mmapv1的内存模型不同,它可以限制mongod对内存的使用量,而mmapv1则不能(依赖于系统级的mmap)。默认情况下,cacheSizeGB的值为假定当前节点只部署一个mongod实例,在MongoDB 3,默认情况下,wiredtiger缓存,使用1 GB或安装的物理内存的一半,以较大者为准。默认值为物理内存的一半。
2025-01-08 22:28:31
998
原创 wareshark分析mysql协议的数据包
使用wareshark 分析mysql协议的数据包,是每个dba都应该掌握的技能,掌握以后,就可以通过tcpdump抓包分析,得到连接报错的信息了。2 选中mysql协议,配置成想要的端口,比如我的是tidb,需要配置成4002.
2024-11-29 13:31:31
351
原创 go 接口类型断言
类型断言是 Go 语言中的一种机制,用于将接口类型的值转换为具体类型。类型断言可以帮助我们从接口中提取具体的值,从而访问具体类型的方法和字段。// n := i.(int) // 这行如果取消注释会导致 panic,因为 i 并不是 int 类型。// 直接使用类型断言,如果失败会引发 panic。// 类型断言,将接口类型转换为具体类型。// 错误的类型断言。
2024-11-23 17:34:55
532
原创 go interface(接口)使用
在 Go 语言中,接口(interface)是一种抽象类型,它定义了一组方法,但是不实现这些方法。接口指定了一个对象的行为,而不关心对象的具体实现。这个例子定义了一个 Animal 接口,以及两种实现该接口的类型:Dog 和 Cat。Go 中的空接口 interface{} 可以表示任何类型,因为所有类型都至少实现了零个方法。// 定义一个结构体 Dog,并实现 Animal 接口。// 定义一个结构体 Cat,并实现 Animal 接口。// 定义一个函数,接受一个 Animal 类型的参数。
2024-11-23 16:18:23
551
原创 go 结构体方法
fmt.Println("Scaled Radius:", c.Radius) // 输出: Scaled Radius: 10。fmt.Println("Area:", rect.Area()) // 输出: Area: 12。fmt.Println("Area:", area) // 输出: Area: 314。// 使用值调用指针接收者的方法。// 使用指针调用值接收者的方法。// 调用指针接收者方法。// 调用值接收者方法。方法接收者是结构体的指针。// 指针接收者方法。// 指针接收者方法。
2024-11-23 15:49:17
661
原创 go 结构体指针
在 Go 语言中,结构体指针用于指向结构体的内存地址。使用结构体指针可以避免在函数调用时复制整个结构体,从而提高性能,特别是当结构体较大时。结构体指针还可以方便地修改结构体的字段。fmt.Println(*p) // 输出: {Alice 30}fmt.Println(*p) // 输出: {Alice 30}fmt.Println(*p) // 输出: {Bob 25}// 使用 new 函数创建结构体指针。// 使用 new 函数创建结构体指针。// 直接初始化结构体并取地址。实质上还是结构体的调用。
2024-11-23 12:01:03
352
原创 go channel select 语句使用
在 Go 语言中,select 语句用于在多个通道操作中进行选择。select 语句可以同时等待多个通道操作,并在其中一个通道准备好时执行相应的分支。使用 select 可以让你的程序更高效地处理并发任务,尤其是在需要处理多个通道的复杂场景中。select 可以与 time.After 搭配使用,以处理通道操作的超时情况。可以同时尝试向多个通道发送数据,并在其中一个通道可以发送时执行操作。可以同时等待多个通道的数据,并在其中一个通道有数据时进行处理。使用 default 分支可以实现非阻塞的通道操作。
2024-11-17 18:22:17
506
原创 goroutine 和主线程运行优先级(同步channal会影响goroutine)
在Go语言中,goroutine和主线程(即main函数所在的goroutine)之间的调度顺序是不确定的。无论哪个goroutine先运行,最终都会有一个goroutine在通道操作上进行阻塞,直到另一个goroutine执行相应的操作。在Go语言中,goroutine的调度顺序是不确定的,因此确实有可能非主goroutine先运行。不过,在这个具体的例子中,由于。Goroutine是由Go运行时调度的,调度的具体顺序可能会因多种因素而异,包括操作系统的调度、Go运行时的实现等。
2024-11-16 10:51:13
264
原创 进程 线程 和go协程的区别
进程和线程是操作系统中两个重要的执行单元,理解它们的区别对于编程和系统设计非常重要。切换只是简单的函数调用。资源:线程共享进程的资源,如内存和文件句柄,但每个线程有自己的栈和寄存器。适用场景:进程适用于需要高隔离性的任务,线程适用于需要高效并发的任务。隔离性:进程之间是相互隔离的,一个进程的崩溃不会直接影响其他进程。进程是完全独立的,线程共享进程的资源,而协程在同一线程中共享资源。定义:进程是一个正在执行的程序的实例,具有独立的地址空间。独立性:进程是独立的执行单元,而线程是共享资源的执行单元。
2024-11-11 21:34:17
473
原创 django中entity.save(using=)的使用
使用某些ORM(对象关系映射)框架时,比如Django ORM,entity.save(using=...)是一种用于保存实体对象到数据库的方法调用,其中using参数用于指定要使用的数据库。这意味着你可以在一个项目中配置多个数据库,并根据需要在不同的数据库之间进行操作。假设你在Django项目的设置中配置了多个数据库,比如一个默认数据库和一个备用数据库。在这个例子中,entity对象会被保存到名为backup_db的数据库中,而不是默认数据库。•using 参数允许你指定保存操作使用哪个数据库连接。
2024-10-27 09:06:07
462
原创 django中的类属性和类方法
这个例子中,get_version 是一个类方法,通过 @classmethod 装饰器声明,允许你访问类属性 version_number。如果你的需求是类似的,那么你就需要使用类方法。否则,如果只是需要在类定义时执行某个函数并将结果存储为类属性,不需要将其定义为类方法。2、如果你需要定义一个方法,需要在方法中使用 cls 来创建类的实例或执行其他与类相关的操作,那么你应该使用 @classmethod。它在类加载时就被初始化。django中直接定义类的属性,可以直接在实例化对象或者类中调用。
2024-10-26 18:42:07
708
原创 python笔记:@property
property 是 Python 中的一个内置装饰器,用于将一个类的方法转换为只读属性。它允许你定义一个方法,但通过属性的方式来访问它的返回值。通过 @property,你可以在不改变类接口的情况下对属性访问进行控制,比如添加验证逻辑.: 使用 @property 可以隐藏属性的实现细节,提供一个简单的接口。: 计算属性的值仅在需要时进行计算,而不是在对象创建时。print(c.radius) # 输出: 10。print(c.radius) # 输出: 5。# 访问和修改 radius 属性。
2024-10-26 12:35:07
505
原创 python学习笔记:___getattr__
1.必须调用 super().__getattribute__: 如果你重写了 __getattribute__,通常需要调用 super().__getattribute__(name) 来实际获取属性的值。4.与 __getattr__ 的区别: __getattribute__ 总是被调用,而 __getattr__ 只有在属性不存在时才被调用。3.避免无限递归: 在 __getattribute__ 中,如果你直接访问对象的属性而不通过 super(),可能会导致无限递归。# 访问不存在的属性。
2024-10-26 10:23:24
525
原创 腾讯云DBA面试(一面)
在第二阶段,根据RM返回的结果,如果涉及分布式事务的所有RM都返回可以提交, 则TM给RM发送commit的命令,每个RM实现自己的提交,同时释放锁和资源,然后RM反馈提交成功, TM完成整个分布式事务;根据事务所处的阶段,可以回滚到具体的版本,实现一致性。1.并发执行的事务,在prepare阶段,redo log先写文件缓存,第一个领头的事务,在等待n个事务后, 在第一个事务去刷写磁盘时,会把同组的其他的事务,也一起刷写到磁盘上,这样就减少了刷盘的次数,降低了磁盘的IOPS。分布式锁是怎么实现的?
2024-10-25 14:12:02
1650
1
原创 redis cluster命令汇总
-cluster-fix-with-unreachable-masters : 是否修复不可达的主节点上的槽位。此时如何恢复该主节点上的所有槽位呢,这时就可以使用该参数,会将处于该主节点上的所有槽位恢复到存活的主节点上(之前的数据会丢失,仅仅是恢复了槽位)。--cluster-replace 如果集群(127.0.01:6379)中存在外部redis实例(127.0.0.2:6379)的key,则会覆盖掉(10.35.2.68:6379)的value。
2024-10-22 21:02:11
999
原创 redis5.0 cluster一个机器维修迁移到另外一个机器
redis cluster 当中一台机器需要维修,因此需要把这台机器上的redis cluster主节点都迁移到另外一台机器。2、使用reshard 命令将redis cluster的slot迁移到新机器的集群。3、将原机器节点从redis cluster 集群剔除。1、将机器的节点的加入到集群。
2024-10-22 20:00:48
317
原创 br实现大数据量的tidb机房迁移
nfs挂载,server和client 用tidb用户导出数据,但是tidb用户在server和client 端,uid和gid可能不一致,导致client没有写入的权限,导致报错。这个速度是每个tikv的恢复速度,因此,不限制的话,速度很快,达到了节约时间的目的。上面的报错原因,就是恢复原理没有搞清楚,在恢复时,需要在本地读取数据,因此恢复数据时也要挂载。:br导出的数据不需要很大的磁盘,但是iops需要很高,需要ssd磁盘。最后,尝试了多种方案,迁移数据速度都太慢了,想要实现一天迁移完成数据,
2024-10-19 17:19:16
901
原创 redis cluster5.0在线扩容节点
1 登陆到任意一台老的集群的redis节点,执行CLUSTER MEET ,将新扩容节点加入到redis cluster集群,初次加入到集群的节点,通过clueter nodes可以看到新节点的状为是master,:平均分配所有的槽位,使用以下命令会自动降16384个槽位自动分配给集群的每一个master,不用手动指定槽为分配。重新分片基本上意味着将slot 重新分配,就像集群创建一样,它是使用 redis-cli 实用程序完成的。2.、重新slot分配。
2024-04-12 00:00:43
298
原创 Redis 7.0 共享复制缓冲区的实现
当从库尝试与主库进行增量重同步时,会发送自己的 repl_offset, 若从库可满足增量重同步条件,则主库会从 ReplicationBacklog 中拷贝从库缺失的数据到从库 OutputBuffer,虽然现在的拷贝变成了仅仅是对特定 replBufBlock 引用计数的改变,在每个 replBufBlock 中记录了该其第一个字节对应的 repl_offset,但如何高效地从数万个 replBufBlock 的链表中找到特定的那个, 仍然一件棘手的事情。一方面,rax 索引占用的内存较少;
2023-11-16 15:31:16
247
原创 redis复制缓冲区与复制积压缓冲区的区别
主节点维护的一个缓冲区,在主节点开始有从节点时创建(不管几个从节点都只有一个),其是长度固定且为先进先出的队列,默认大小为1MB。复制缓冲区的大小由client-output-buffer-limit slave {hard limit} {soft limit} {soft seconds}配置,默认值为client-output-buffer-limit slave 256MB 64MB 60,其含义是:如果buffer大于256MB,或者连续60s大于64MB,则主节点会断开与该从节点的连接。
2023-11-16 15:23:06
802
原创 mysql意向锁究竟是做什么的
表级锁,主要是为了提高加表锁的效率,是mysql数据库自己加的。当有事务给表的数据行加了共享锁或排他锁,同时会给表设置一个标识,代表已经有行锁了,其他事务要想对表加表锁时,就不必逐行判断有没有行锁可能跟表锁冲突了,直接读这个标识就可以确定自己该不该加表锁。特别是表中的记录很多时,逐行判断加表锁的方式效率很低。而这个标识就是意向锁。是一种锁的层次结构。当一个事务需要对某一行进行加锁时,会先获取意向锁,表明该事务将对该行进行加锁操作,同时其他事务可以获取表级别的锁,但不能获取同一行的行级别锁。
2023-11-08 11:00:24
764
原创 mongodb索引到底是B+树还是B树?
查询单条数据的时候,B树的查询效率不固定,最好的情况是 O(1),因为它不需要再遍历去找到叶子节点。所以可以认为在做单一数据查询的时候,使用 B 树平均性能更好。但是,由于 B 树中各节点之间没有指针相邻,因此 B 树做一些数据遍历操作不那么适合。B+ 是在 B 树上改进,它的数据都在叶子节点,同时叶子节点之间还加了指针形成链表。1、为什么 MongoDb 数据组织形式使用 B 树,而 MySQL 使用 B+ 树?其实WiredTiger 使用的是 B+ 树作为其存储结构。2、而 B 树有啥好处呢?
2023-11-02 17:50:35
670
原创 mysql8.0.30 在线调整redo log
该参数会在数据目录下生成’#innodb_redo’的子目录,磁盘文件的存储形式不再是类似 ib_logfileN 这样的文件,而是替代为 #ib_redoN 这样新文件形式。5 去配置文件my.cnf中修改参数,例如将innodb_log_file_size改为1G,innodb_log_files_in_group改为3。redo日志文件中不带有_tmp后缀的说明是正在使用的日志文件,带有_tmp后缀的是等正在使用的文件写满后再写它。调整innodb_redo_log_capacity=6G。
2023-10-12 17:09:23
204
原创 mongodb事务
对于需要对多个文档(在单个或多个集合中)进行原子性读写的情况,MongoDB支持多文档事务。时间戳,标识下⼀次重启后,从该位置重新同步,如果本步 骤之前失败,重启恢复时,会从 ApplyThrough。,MongoDB引入了分布式事务, 增加了对分片上的多文档事务的支持 集群并包含对 副本集上的多文档事务。可⻅时间戳,如果有其他节点从该备节点同步,此时就能读到这部分新写⼊的。划分到到多个线程并发重放,为了提升并发效率,事务产⽣的。的限制),包含事务⾥所有的操作,备节点拉取。,并在本地重放事务操作。
2023-09-19 23:12:06
464
原创 mysql当中prepare预处理报错
然后,我们使用 SET 语句设置 @age_limit 的值为 18,接着使用 EXECUTE 语句执行预处理语句 stmt,通过 USING 子句传入参数 @age_limit。但是,如果你准备的语句是动态生成的,或者你在执行大量的不同查询时使用了准备的语句,那么你应该在每次执行完EXECUTE后立即关闭准备的语句,以避免消耗过多的系统资源。其中,statement_name 是我们给预处理语句起的一个名称,可以自定义,sql_statement 是要编译的 SQL 查询或语句。
2023-08-22 16:41:41
926
原创 systemctl配置redis服务的2种方式
服务配置文件:/usr/lib/systemd/system/redis-6381.service。redis配置文件要改成daemonize yes。redis配置文件要改成daemonize no。
2023-06-08 08:30:16
1248
原创 systemctl 使用
systemctl主要负责控制systemd系统和服务管理器。在ubuntu 、centos等一系列发行版中可用。可以方便的管理需要启动的服务等。可以实现开机自启动、出错重启和定时重启等等功能。
2023-05-31 16:58:50
588
原创 redis5.0 cluster删除一个节点
redis-cli -a password --cluster del-node ip:prot 删除点ID。2、然后清理此节点对应的nodes-3000.conf配置文件信息。1、kill掉这个节点的进程。
2023-04-25 23:43:46
833
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人