- 博客(31)
- 收藏
- 关注
原创 mysql相关知识
索引下推能够减少二级索引在査询时的回表操作,提高査询的效率,因为它将 Server 层部分负责的事情,交给存储引擎层去处理了。示例:联合索引age和reward。查询一条sql语句的流程。
2024-09-23 00:07:03 399 1
原创 redis是什么?看着一篇就够了
Redis 是一种基于内存的非关系型数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景。Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、Hash(哈希)、 List (列表)、Set(集合)、Zset(有序集合)、Bitmaps(位图)、HyperLogLog(基数统计)、GEO (地理信息)、Stream(流),并且对数据类型的操作都是原子性的,因为执行命令由单线程负责的,不存在并发竞争的问题。
2024-08-24 21:07:03 894
原创 rabbitMQ的简单使用
RabbitMQ是一个开源的消息代理和队列服务器,主要用于在不同的应用程序之间传递消息。它基于AMQP(Advanced Message Queuing Protocol)协议,提供了一种可靠的方式来处理异步通信。RabbitMQ使用Erlang语言编写,具有高可用性、可伸缩性和可靠性。
2024-06-16 18:21:02 1522
原创 项目常用知识
安全性:由于Session数据存储在服务器端,因此相对于存储在客户端的JWT或Cookie来说,Session在数据安全性方面更高。但是,如果JWT被窃取,攻击者可能会利用它进行身份验证。:主键索引的叶子节点存储的是一行完整的数据,而非主键索引的叶子节点存储的是主键的值。这样可以提高系统的可扩展性和可靠性,因为从节点可以分担读操作的负载,并且在主节点发生故障时,可以从从节点中选举出新的主节点。这个类型使用了一种特殊的机制来优化并发读写操作,避免了互斥锁的开销,但在某些场景下可能不如传统的互斥锁保护下的。
2024-06-02 10:48:15 569
原创 mongodb快速入门
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统;在高负载的情况下,添加更多的节点,可以保证服务器性能;MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案;MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成;MongoDB 文档类似于 JSON 对象。
2024-05-19 19:32:08 524
原创 Redis简单使用
在下面这个仓库可以找到安装包:https://github.com/lework/RedisDesktopManager-Windows/releases。结构化:NoSql非结构化数据库,松散结构(键值对key-value(可以任意类型),文档型)没有mysql那么严格的约束,比如唯一性,是否可以为空。进行SSH连接虚拟机进行可视化,虚拟机地址找不到,导致连接时一直超时。redis:字典型数据库,存储的是键值对,是NoSql数据库。存储方式:关系型数据库:磁盘;配置文件地址:解压的redis安装包下(
2024-05-12 08:28:09 870
原创 快速理解mysql事务
事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。
2024-04-18 09:35:58 838
原创 mysql锁相关知识
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、 RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。**如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。**从这个 角度来说,锁对数据库而言显得尤其重要,也更加复杂。在介绍锁之前先回顾一下DML、DQL、DDL分别代表什么?
2024-04-13 20:23:34 1144 5
原创 管道(底层是hchan结构体)实现多个goroutine通信
Go channel的底层数据结构以及工作原理?向缓存满的channel写数据会发生什么?如果环形数组buf已满,走阻塞发送的流程,将当前的goroutine加入写等待队列,并挂起等待唤醒向没有数据的channel读数据会发生什么?走阻塞发送的流程,将当前的goroutine加入读等待队列,并挂起等待唤醒简述channel的日常用法?当G1向ch里发送数据时,首先会对buf加锁,然后将task存储的数据copy到buf中,然后send++,然后释放对buf的锁;
2024-03-30 20:21:03 372
原创 mysql视图和存储过程
MySQL作为一个强大的关系型数据库管理系统,提供了许多高级功能,其中包括视图、存储过程和函数。这些功能使得数据库的管理和操作变得更加灵活和高效。在本文中,我们将探讨MySQL视图、存储过程和函数的定义、用途以及如何创建和使用它们。一个是 view。它是一个用查询语句定义的虚拟表,在调用的时候执行查询语句并生成结果。创建视图的语法是 create view … ,而它的查询方法与表一样。通俗来讲,视图只保存了查询的 SQL 逻辑,不保存查询结果。
2024-03-24 10:00:01 991 1
原创 内网穿透ngrok工具Windows的快速使用
在内网中访问外网服务或者在外网中访问内网服务时,就需要进行内网穿透;内网穿透工具是一种用于将内网服务暴到公网的工具,它可以帮助用户在没有公网IP或无法进行端口映射的情况下,实现对内网服务的访问。通过内网穿透工具,用户可以将内网服务器的服务映射到公网上,从而实现对内网服务的远程访问。Go语言中实现微信支付或支付宝支付的内网穿透时,最常用的工具包括:Ngrok,frp...
2024-02-22 21:41:15 1518 1
原创 RESTful API入门
简单来说,RESTful API是一种规范,可以规范我们如何对服务器资源的操作。如何对服务器资源的操作,常见就是增删改查,这就离不开HTTP方法。
2024-02-17 09:41:29 405 1
原创 项目升级必备(web通用)
JWT一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,token也可直接被用于认证,也可被加密。第四个部分是 12 个 bit:表示的序号,就是某个机房某台机器上这一毫秒内同时生成的 id 的序号,0000 00000000。第三个部分是(5 个 bit:表示的是机房 ID,10001) + (5 个 bit:表示的是机器 ID,1 1001)。(4):访问http://127.0.0.1:8080/swagger/index.html。
2024-01-26 22:18:33 1095 1
原创 java小游戏-超级玛丽
四:Mario类 定义马里奥的状态status,创建线程对象thread用来实现马里奥的动作,马里奥的移动(向左,向右),跳跃(向左,向右)和站立方法(向左,向右),马里奥的移动和死亡方法以及得分和获胜方法。定义敌人的坐标,敌人类型,以及运动的极限范围,这里也要创建一个线程对象启动,蘑菇敌人和食人花敌人的构造方法进行初始化,通过死亡方法public void death()使得蘑菇敌人被马里奥踩死。在run()抽象方法内实现蘑菇敌人和食人花敌人的移动以及场景的切换,最后进行休眠和捕获异常处理。
2023-03-25 10:47:16 688
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人