自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 8.Redis 哨兵(Sentinel)

1.基本概念Redis 哨兵(Sentinel)机制是 Redis 提供的高可用解决方案,它能够监控主从节点的状态,并在主节点故障时自动将从节点晋升为新的主节点,从而实现故障自动转移,减少人工干预。Redis 的主从复制模式下,⼀旦主节点由于故障不能提供服务,需要⼈⼯进⾏主从切换,同时⼤量的客⼾端需要被通知切换到新的主节点上,对于上了⼀定规模的应⽤来说,这种⽅案是⽆法接受的,于是 Redis 从 2.8 开始提供了 Redis Sentinel(哨兵)加个来解决这个问题。1.基本概念。

2025-09-15 17:23:03 1135

原创 7.Redis 主从复制(重在理解)

Redis 主从复制是 Redis 提供的一种数据备份和读写分离方案,通过该机制可以实现将主节点(Master)的数据同步到从节点(Slave),从而提高系统的可用性和读取性能。在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他服务器,满⾜故障恢复和负载均衡等需求。Redis 也是如此,它为我们提供了复制的功能,实现了相同数据的多个 Redis 副本。复制功能是⾼可⽤ Redis 的基础,哨兵和集群都是在复制的基础上构建的。

2025-09-15 17:22:52 625

原创 8.动态规划(随想录)

416. 分割等和子集 (opens new window)是求背包是否正好装满,而本题是求背包最多能装多少。物品就是石头,物品的重量为stones[i],物品的价值也为stones[i]。本题其实是尽量让石头分成重量相同的两堆(尽可能相同),相撞之后剩下的石头就是最小的。一堆的石头重量是sum,那么我们就尽可能拼成 重量为 sum / 2 的石头堆。这样剩下的石头堆也是 尽可能接近 sum/2 的重量。

2025-09-13 07:27:18 953

原创 6.Redis 事务

Redis 的事务可以通俗理解为「把一系列操作打包成一个整体执行」,要么全部成功,要么全部失败(或者说按顺序执行,中间出错也不会回滚),避免操作到一半被打断。与MySQL类似,但要注意二者的区别:1.弱化的原子性:redis,只能做到这些操作。不能做到“一个失败就恢复到初始状态”。2.不保证一致性:不涉及“约束”。也没有回滚. MySQL 的⼀致性体现的是运⾏事务前和运⾏后 , 结果都是合理有效的, 不会出现中间⾮法状态。3.不需要隔离性: 也没有隔离级别, 因为。

2025-09-13 07:25:30 1273

原创 5.持久化(Redis)

为了保证数据快,数据要存在内存中;但是为了持久,数据又要存在硬盘上。那怎么办?Redis 决定,内存硬盘都要存数据(这两份数据上是完全相同的)Redis 持久化是指将内存中的数据定期或实时保存到磁盘,以防止服务重启、宕机等情况导致数据丢失的核心机制。其核心目标是在和和,此外还支持二者结合的混合持久化模式。

2025-09-12 07:20:11 1275

原创 回顾生产消费者模型

对生产者:“不用等消费者,有地方存就行”;对消费者:“不用等生产者,有东西拿就行”;对系统:“稳定应对速度差异和突发流量,降低耦合”。它是从 “简单多线程” 到 “复杂分布式架构” 都绕不开的核心设计思想,理解它就能看懂很多中间件(如 MQ、线程池)的底层逻辑。

2025-09-12 07:19:08 717

原创 3.List,set 与 Zset(Redis数据类型)

本文详细介绍了Redis中的三种核心数据结构:列表(List)、集合(Set)和有序集合(Zset)。列表是有序字符串集合,支持两端操作,可用作栈或队列;集合是无序唯一元素集合,支持交并差等集合运算;有序集合则通过分数(score)实现元素排序,每个元素保持唯一但分数可重复。文章深入解析了各数据结构的特性、内部编码机制、常用命令及典型应用场景,如列表可用于消息队列和微博时间线,集合适合标签系统,有序集合则适用于排行榜等需要排序的场景。通过命令示例和复杂度分析,全面展示了这些数据结构在Redis中的实现原理和

2025-09-11 15:44:22 755

原创 2.string,hash(Redis数据类型)

⼀个分布式 Web 服务将⽤⼾的 Session 信息(例如⽤⼾登录信息)保存在各⾃的服务器中,但这样会造成⼀个问题:出于负载均衡的考虑,分布式服务会将⽤⼾的访问请求均衡到不同的服务器上,并且通常⽆法保证⽤⼾每次请求都会被均衡到同⼀台服务器上,这样当⽤⼾刷新⼀次访问是可能会发现需要重新登录,这个问题是⽤⼾⽆法容忍的。可以使⽤负数表⽰倒数。1.哈希类型是稀疏的,⽽关系型数据库是完全结构化的,例如哈希类型每个键可以有不同的 field,⽽关系型数据库⼀旦添加新的列,所有⾏都要为其设置值,即使为 null,

2025-09-11 15:44:03 597

原创 1.初识Redis

Redis是⼀种基于(key-value)的 NoSQL 数据库,与很多键值对数据库不同的是,Redis 中的值可以是由 string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成,因此 Redis 可以满⾜很多的应⽤场景,⽽且因为 Redis 会将所有数据都存放再中,所以它的读写性能⾮常惊⼈。

2025-09-10 07:06:01 1078

原创 0.服务端高并发分布式结构

1.分布式(Distributed)系统中的多个模块被部署于不同服务器之上,即可以将该系统称为分布式系统。如 Web 服务器与数据库分别⼯作在不同的服务器上,或者多台 Web 服务器被分别部署在不同服务器上。跨主机之间的模块之间的通信基本要借助⽹络⽀撑完成。2.中间件(Middleware)⼀类提供不同应⽤程序⽤于相互通信的软件,即处于不同技术、⼯具和数据库之间的桥梁。3.可⽤性(Availability)考察单位时间段内,系统可以正常提供服务的概率/期望。

2025-09-10 07:05:02 871

原创 3.数组(C)

p用来打印地址//内存会被划分为一个个的内存单元,一个单元的大小是1字节,每个内存单元都有编号(即为地址以16进制显示)2.&arr 这里取的是整个数组的地址(但实质还是数组中最小元素的地址,即首元素地址)1.sizeof(arr) 表示计算整个数组所占空间的内存大小;7.练习(二分查找)1.1.数组是一堆“相同元素”的集合.3.1.数组下标(方便访问数组中的值)6. 二维数组的创建与使用。哈哈(作者太懒了,没有好招)5.一维数组在内存中的存储。相当于数组中的元素编号。*数组名的本质是地址*

2025-09-09 12:44:28 737

原创 14.MySQL 使用C语言连接

包含所有的方法实现(打包成库)函数,来验证我们的引入是否成功。官网提供的库,大家可以去。包含所有的方法声明,

2025-09-09 12:42:57 178

原创 13.MySQL用户管理

如果我们只能使用root用户,这样存在安全隐患。这时,就需要使用MySQL的用户管理。

2025-09-08 09:00:04 189

原创 C++ - 高性能内存池

所谓“池化技术”,就是程序先向系统申请过量的资源,然后⾃⼰管理,以备不时之需。之所以要申 请过量的资源,是因为每次申请该资源都有较⼤的开销,不如提前申请好了,这样使⽤时就会变得⾮常快捷,⼤⼤提⾼程序运⾏效率。在计算机中,有很多使⽤“池”这种技术的地⽅,除了内存池,还有连接池、线程池、对象池等。以服务器上的线程池为例,它的主要思想是:先启动若⼲数量的线程,让它们处于睡眠状态,当接收到客⼾端的请求时,唤醒池中某个睡眠的线程,让它来处理客⼾端的请求,当处理完这个请求,线程⼜进⼊睡眠状态。

2025-09-08 08:59:19 1425

原创 12.MySQL视图(了解)

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。它本身不存储数据,而是基于一个或多个实际表(或其他视图)的查询结果动态生成。

2025-09-06 00:27:08 189

原创 11.MySQL事务管理

事务是 MySQL 中保障数据一致性的核心机制,它将一组 SQL 操作封装为一个不可分割的执行单元 —— 要么所有操作全部成功(提交),要么所有操作全部失败(回滚)。事务还规定不同的客户端看到的数据是不相同的。一个 MySQL数据库,可不止你一个事务在运行,同一时刻,甚至有大量的请求被包装成事务,在向 MySQL 服务器发起事务处理请求。在不加保护的情况,就绝对会出现问题。MySQL 事务必须满足ACID 四大特性,这是事务完整性的基石。

2025-09-06 00:26:45 974

原创 10.索引

索引:提高数据库的性能,索引是物美价廉的东西了。不用加内存,不用改程序,不用调sql,只要执行正确的 create index,查询速度就可能提高成百上千倍。但是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的IO。所以它的价值,在于提高一个海量数据的检索速度。索引通过构建类似目录的结构,让数据库无需全表扫描即可快速定位到目标数据。例如在百万级数据中查询特定记录时,使用索引能将查询时间从秒级缩短到毫秒级。当查询包含ORDER BY。

2025-09-05 00:29:40 821

原创 9.表的内连和外连(重要)

数据库设计中,为避免数据冗余,通常会将信息拆分到多个表(如 “学生表” 和 “成绩表”,通过 “学生 ID” 关联)。“连接” 的作用就是通过,将多个表的相关数据合并为一个结果集,方便查询。

2025-09-05 00:29:20 343

原创 8.MySQL复合查询(重要)

1.查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J2.按照部门号升序而雇员的工资降序排序3.使用年薪进行降序排序4.显示工资最高的员工的名字和工作岗位5.显示工资高于平均工资的员工信息6.显示每个部门的平均工资和最高工资7.显示平均工资低于2000的部门号和它的平均工资having 和 where 的区别8.显示每种岗位的雇员总数,平均工资2.多表查询将数据进行穷举组合 -- 笛卡尔积任何时候,查询出来的临时结构

2025-09-04 07:15:10 1041

原创 7.MySQL内置函数

【代码】7.MySQL内置函数。

2025-09-04 07:14:46 380

原创 6.MySQL基本查询-表的增删查改

更快,但是TRUNCATE在删除数据的时 候,并不经过真正的事物,所以无法回滚。的函数,常用于统计、汇总数据。它的特点是:输入多行数据,输出一个结果。案例:删除表中的的重复复记录,重复的数据只能有一份。2.显示每个部门的每种岗位的平均工资和最低工资。返回查询到的数据的 平均值,不是数字没有意义。返回查询到的数据的 最大值,不是数字没有意义。返回查询到的数据的 最小值,不是数字没有意义。返回查询到的数据的 总和,不是数字没有意义。的关键字,通常和聚合函数(如。返回查询到的数据的 数量。

2025-09-03 06:52:47 808

原创 5.表的约束

真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。

2025-09-03 06:52:04 1121

原创 4.MySQL数据类型

该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值;数据类型用于存储二进制值,M表示每个值的位数,范围从1到64.。,因为这些选项的每个选项值依次对应如下字:1,2,4,8,16,32,.... 最多64。该设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中任意多个值;说明:不建议在添加枚举值,集合值的时候采用数字的方式,因为不利于阅读。6.变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少。,需要调查人的喜好, 比如(登山,游泳,篮球,武术)中去选择。

2025-09-02 06:51:30 1044

原创 3.表的操作

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。插入新字段后,对原来表中的数据没有影响.6.将name列修改为xingming。表添加一个字段,用于保存图片路径。5.修改表名为employee。4.删除password列。

2025-09-02 06:48:51 304

原创 2.MySQL库的操作

如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。字符集是一个系统支持的所有抽象字符的集合,规定了如何将字符映射到二进制数据,以便在计算机中存储和传输。文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source。》对应的数据库文件夹被删除,级联删除,里面的数据表全部被删。1.如果备份的不是整个数据库,而是其中的一张表,怎么做?对数据库的修改主要指的是修改数据库的字符集,校验规则。

2025-09-01 10:55:18 392

原创 1.MySQL数据库基础

存储数据用文件就可以了,为什么还要弄个数据库?文件保存数据有以下几个1.文件的安全性问题2.文件不利于数据查询和管理3.文件不利于存储海量数据4.文件在程序中控制不方便数据库存储介质: 磁盘 内存通过:cd /var/lib/mysql 可发现create实际就是linux创建目录。

2025-09-01 10:55:00 638

原创 25. 图

3. 完全图:在,若,即,则称此图为,比如上图G1;在中,若,即,则称此图为,比如上图G4。。在有向图中,,其中顶点v的,记作indev(v);顶点v的,记作outdev(v)。注意:对于,即dev(v) = indev(v) = outdev(v)。5.路径长度:对于;对于。6.连通图:在中,若从顶点v1到顶点v2有路径,则称顶点v1与顶点v2是连通的。7.强连通图:在中,若在生成树:一个称作该图的生成树。。

2025-08-04 10:11:40 1437

原创 14. Reactor 反应堆模式

Reactor 反应堆模式,本质是让框架帮你 “等事件、分任务”,你只需要写 “事件发生后做什么”。像餐厅经理:盯着所有事件(新客、加菜),有事就喊对应服务员处理。用事件驱动替代轮询,把 “人等事” 变成 “事找人”,大幅提升高并发场景下的效率。理解 Reactor 后,再看 Nginx、Redis 的网络模型,就会发现它们都是这套逻辑的延伸ovo基于 Reactor 模式的 TCP 服务器框架设计。

2025-08-02 10:13:34 836

原创 13. 多路转接 epoll

epoll用红黑树管理监控的fd,用就绪链表快速返回事件,靠回调机制实现自动通知,让内核和用户态高效配合,处理高并发 I/O 事件。epoll用生产者 - 消费者模型管理就绪事件,epoll_wait不怕缓冲区小(没拿完下次继续),epoll_ctl负责 “插节点 + 注册回调”,且接口线程安全,用户处理事件时不用额外校验,拿到的都是真・就绪事件当某一进程调用方法时,Linux内核会创建一个eventpoll结构体,这个结构体中有两个成员与 epoll的使用方式密切相关....

2025-08-02 10:13:13 1109

原创 12. 多路转接 select

系统提供select函数来实现多路复用输入输出模型•select 系统调用是用来让我们的程序监视多个文件描述符的状态变化的;•程序会停在 select这里等待,直到被监视的文件描述符有一个或多个发生了状态改变;

2025-08-01 11:21:16 960

原创 11. 五种 IO 模型与阻塞 IO

IO为什么比较慢?为什么访问外设会比较慢?IO了,你想读,就一定有数据吗?--所以,什么叫做IO效率高?--

2025-08-01 11:21:01 841

原创 10. NAT,代理服务,内网穿透

NAT技术当前解决IP地址不够用的主要手段是路由器的一个重要功能;•NAT 能够将私有IP对外通信时转为全局IP.也就是就是一种将私有IP和全局 IP 相互转化的技术方法•很多学校,家庭公司内部采用每个终端设置私有IP,而在路由器或必要的服务器上设置全局 IP;•全局 IP要求唯一但是私有IP不需要;在不同的局域网中出现相同的私有IP 是完全不影响的;

2025-07-31 10:48:07 702

原创 9. 数据链路层

用于两个设备(同一种数据链路节点之间进行传递。

2025-07-31 10:47:42 1391

原创 8. 网络层

在复杂的网络环境中确定一个合适的路径。

2025-07-30 18:39:29 994

原创 7. 传输层协议 TCP

TCP全称为传输控制协议要对数据的传 输进行一个详细的控制。

2025-07-30 18:39:12 1062

原创 6. 传输层协议 UDP

负责数据能够从发送端传输接收端.

2025-07-29 08:11:57 917

原创 5.应用层协议 HTTP

HTTP 协议是一个无连接、无状态的协议,即每次请求都需要建立新的连接,且服务器不会保存客户端的状态信息 --- 无状态,会给用户造成困扰,不会记录用户信息,就要手动输入,扫码。。。所以,引入cookie,session。

2025-07-29 08:11:39 812

原创 4.应用层自定义协议与序列化

程序员写的一个个解决我们实际问题满足我们日常需求的网络程序都是在应用层。

2025-07-28 22:08:04 1009

原创 3. Socket 编程 TCP

1. TCP网络程序1. TCP网络程序。

2025-07-28 22:07:47 1084

原创 2.Socket 编程 UDP

实现一个简单的英译汉的网络字典。

2025-06-10 16:30:29 673

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除