摘要: 写在卸载之前 一个蒟蒻无力的挣扎 如果你是在阅读本人的博文来实现俄罗斯方块 在实现俄罗斯方块之前 本人建议先左转贪吃蛇 正式开始 本来还是想秉持拿来主义 像贪吃蛇一样从网上随随便便找一个拿来写写 但是由于网上的俄罗斯方块 实在是要么看不懂要么运行不了这话好像已经说过了 所以没有办法 只好自己手写一个 阅读全文
posted @ 2021-03-10 18:41 tcswuzb 阅读(803) 评论(0) 推荐(0)
摘要: 写在卸载之前 一个蒟蒻无力的挣扎 正式开始 首先 为了保证代码的大部分你可以看懂 你需要具备类与对象的前置知识 可以看看这里 使用C++实现贪吃蛇 尽管网上已经存在很多版本 但是 要么看不懂 要么连运行都运行不了 所幸 还是找到了一篇可以看懂的博客 本代码大多数都是从这篇博客借鉴抄袭而来 由于AI智 阅读全文
posted @ 2021-03-10 16:32 tcswuzb 阅读(2098) 评论(0) 推荐(3)
摘要: 写在卸载之前 其实C++这门计算机语言目前只能说会也就是入门 但是不能说精通 所以最近会学一些东西然后不定期整理上去 允许我夹带一波私货 正式开始 一.oct,hex,dec ta们伴随cout分别输出八进制,十六进制,十进制 #include<bits/stdc++.h> using namesp 阅读全文
posted @ 2021-02-23 19:30 tcswuzb 阅读(151) 评论(0) 推荐(1)
摘要: Day 1 简要的说了些注意事项 一整天都在刷树套树的水题 退役的感觉近了 Day 0 早上收拾好东西去了火车站之后 火车站居然还没有开门 等了半天 我们是从衡水到德州再到秦皇岛 到了德州之后 去车站吃了肯德基 然后做了三个多小时的车 到了燕大宾馆之后 发下行李 先吃了饭 然后去试机 试机之后 下午 阅读全文
posted @ 2019-04-24 19:51 tcswuzb 阅读(448) 评论(0) 推荐(4)
摘要: 也不知道写一些什么了 凑和着写写吧 最近十分的¥#&(^ ……#%!*%¥^#$# Day -1 上午考了一场试 就\(TM\)考了60分 好不容易积攒起来的信心啊~~~~~~ 就这么垮了~~~ 下午每一个人把考前注意事项好好的说了一下 大抵都是什么 1.不开\(long\ \ long\)见祖宗 阅读全文
posted @ 2019-03-24 21:16 tcswuzb 阅读(502) 评论(1) 推荐(4)
摘要: 灯す夢があるから Redis内存策略 Redis内存回收 Redis之所以性能强,最主要的原因就是基于内存存储。然而单节点的Redis其内存大小不宜过大,会影响持久化或主从同步性能。 我们可以通过修改配置文件来设置Redis的最大内存: # 格式: # maxmemory <bytes> # 例如: 阅读全文
posted @ 2026-05-12 18:49 tcswuzb 阅读(3) 评论(0) 推荐(0)
摘要: 貴方の胸いつだって Redis通信协议 Redis是一个CS架构的软件,通信一般分两步(不包括pipeline和PubSub): 客户端(client)向服务端(server)发送一条命令 服务端解析并执行命令,返回响应结果给客户端 因此客户端发送命令的格式、服务端响应结果的格式必须有一个规范,这个 阅读全文
posted @ 2026-05-12 01:36 tcswuzb 阅读(3) 评论(0) 推荐(0)
摘要: どうか怖がらないで Redis网络模型 Redis的单线程和多线程 Redis到底是单线程还是多线程: 如果只讨论Redis的核心业务部分(命令处理),答案是单线程 如果是整个Redis,那么答案就是多线程 这和Redis的版本有关,随着版本更新(v4.0)引入了多线程执行异步操作,后来(v6.0) 阅读全文
posted @ 2026-05-12 01:35 tcswuzb 阅读(5) 评论(0) 推荐(0)
摘要: 暗闇での絶望も Redis空间 用户空间和内核空间 任何Linux发行版,其系统内核都是Linux。我们的应用(如MYSQL,Redis)都需要通过Linux内核与计算机硬件(如CPU、RAM、NetworkApapter)交互。 为了避免用户应用导致冲突甚至内核崩溃,用户应用与内核是分离的: 进程 阅读全文
posted @ 2026-05-12 00:25 tcswuzb 阅读(6) 评论(0) 推荐(0)
摘要: Burning up,Burning up Lala, lalala, Lala, lalala Redis数据结构(3) String String是Redis中最常见的数据存储类型: 其基本编码方式是RAW,基于简单动态字符串(SDS)实现,存储上限为512mb。 如果存储的SDS长度小于44字 阅读全文
posted @ 2026-05-11 17:42 tcswuzb 阅读(3) 评论(0) 推荐(0)
摘要: 「潰えぬ夢へ 燃え上がれ」 Redis数据结构(2) ZipList ZipList是一种特殊的“双端链表”,由一系列特殊编码的连续内存块组成。可以在任意一端进行压入/弹出操作,并且该操作的时间复杂度为O(1)。 ZipList结构和字段含义如下: ZipList中的Entry并不像普通链表那样记录 阅读全文
posted @ 2026-05-11 12:12 tcswuzb 阅读(2) 评论(0) 推荐(0)
摘要: Fly to the sky…Fire bird! Redis数据结构(1) 动态字符串SDS 我们都知道Redis中保存的Key是字符串,Value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。 不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题 阅读全文
posted @ 2026-05-10 22:46 tcswuzb 阅读(3) 评论(0) 推荐(0)
摘要: 焦がせ不死なる絆 Redis最佳实践 Redis键值设计 设计优雅的Key Redis的Key虽然可以自定义,但最好遵循下面的几个最佳实践约定: 遵循基本格式:[业务名称]:[数据名]:[id],例如之前设计的登录用户信息login:user:10 长度不超过44字节 不包含特殊字符 这样设计的优点 阅读全文
posted @ 2026-05-10 16:54 tcswuzb 阅读(5) 评论(0) 推荐(0)
摘要: @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("tb_blog_comments") @NoArgsConstructor @AllArgsConstructor public clas 阅读全文
posted @ 2026-05-09 22:48 tcswuzb 阅读(2) 评论(0) 推荐(0)
摘要: 翔び立つこと恐れずに Lua语法 @冰川日菜,一起噜♪起来! Lua入门案例 运行Lua脚本 lua Test.lua 变量 Lua数据类型如下: Linux命令端使用lua命令进入Lua客户端 使用type()函数查看不同的数据类型 使用local声明变量 -- 声明字符串型变量 local st 阅读全文
posted @ 2026-05-09 22:43 tcswuzb 阅读(4) 评论(0) 推荐(0)
摘要: 羽根が千切れ散っても 分布式缓存(下) Redis哨兵 slave节点宕机恢复后可以找master节点同步数据,而master节点宕机的话,数据可以通过数据持久化来恢复,但是外界的读操作和写操作此时被阻塞了。 我们希望在Redis主从集群搭建完成后,在Master宕机的情况会有Slave来紧急替换M 阅读全文
posted @ 2026-05-09 21:41 tcswuzb 阅读(3) 评论(0) 推荐(0)
摘要: 空がどんな高くても 分布式缓存 单点Redis面临的问题: 数据丢失问题:Redis是内存存储,服务重启可能会丢失数据 并发能力问题:单节点Redis并发能力虽然不错,但也无法满足高强度高并发场景 故障恢复问题:如果Redis宕机,则服务不可用,需要一种自动的故障恢复手段 存储能力问题:Redis基 阅读全文
posted @ 2026-05-09 19:20 tcswuzb 阅读(5) 评论(0) 推荐(0)
摘要: Ah! 光を追いかけてきたんだよ… 啊NMD这么多天终于把Redis实战的光追完了 UV统计 UV 搞懂两个概念: UV:全称Unique Visitor,也叫独立访客量,是指通过互联网访问、浏览这个网页的自然人。1天内同一个用户多次访问该网站,只记录1次。 PV:全称Page View,也叫页面访 阅读全文
posted @ 2026-05-09 02:40 tcswuzb 阅读(3) 评论(0) 推荐(0)
摘要: Ah! ほのかな予感から始まり 用户签到功能 按月来统计用户签到信息,签到记录为1,未签到则记录为0,一个月最多31天,把每一个bit位对应当月的每一天,形成了映射关系。用0和1标示业务状态,这种思路就称为位图(BitMap) RedisのBitMap Redis中是利用String类型数据结构实现 阅读全文
posted @ 2026-05-09 02:04 tcswuzb 阅读(4) 评论(0) 推荐(0)
摘要: だってだって、いまが最高! 附近商铺 GEO GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有: GEOADD:添加一个地理位置信息,包含:经度(longitude)、纬度(lat 阅读全文
posted @ 2026-05-08 23:49 tcswuzb 阅读(4) 评论(0) 推荐(0)
摘要: No no no いまが最高! 好友关注 关注和取关 为了便于接下来的操作,同时使用Redis和数据库维护(数据库操作尽量做成异步阻塞操作才、才不是因为麻烦所以不想做呢) 实现代码如下: // 控制层 @RestController @RequestMapping("/follow") public 阅读全文
posted @ 2026-05-08 18:35 tcswuzb 阅读(3) 评论(0) 推荐(0)
摘要: 切なくて時をまきもどしてみるかい? 网红探店 探店齁币多,真假雷神说 发布探店笔记 实现代码如下: // 控制层方法 @RestController @RequestMapping("/blog") public class BlogController { @Autowired private B 阅读全文
posted @ 2026-05-07 20:09 tcswuzb 阅读(5) 评论(0) 推荐(0)
摘要: 夢の中で描いた絵のようなんだ Redis消息队列实现异步秒杀 需求: 创建一个Stream类型的消息队列 修改之前的秒杀下单Lua脚本,在认定有抢购资格后,直接向消息队列中添加消息 项目启动时,开启一个线程任务,尝试获取消息队列中的消息,完成下单 创建消息队列 XGROUP CREATE Secon 阅读全文
posted @ 2026-05-07 02:25 tcswuzb 阅读(5) 评论(0) 推荐(0)
摘要: 夢の中で描いた絵のようなんだ 基于Redis实现的消息队列 消息队列 消息队列(MessageQueue),字面意思就是存放消息的队列。最简单的消息队列模型包括3个角色: 消息队列:存储和管理消息,也被称为消息代理(MessageBroker) 生产者:发送消息到消息队列 消费者:从消息队列获取消息 阅读全文
posted @ 2026-05-06 23:51 tcswuzb 阅读(9) 评论(0) 推荐(0)
摘要: 遠くへと広がる海の色暖かく 秒杀优化 判断优惠券库存以及一人一单都涉及到数据库操作,为了提高效率,将数据库操作优化为Redis操作。判断是否可以下单以及下单操作均在Redis中完成,而下单操作会存入异步阻塞队列中,后台服务器单开异步线程读取异步阻塞队列,完成数据库同步。示意图如下: 使用Redis维 阅读全文
posted @ 2026-05-06 20:28 tcswuzb 阅读(4) 评论(0) 推荐(0)
摘要: 旅立ちの日だよ Redisson 基于SETNX实现的分布式锁存在如下问题: 不可重入:同一个线程无法多次获取同一把锁 不可重试:获取锁只尝试一次就返回false,没有重试机制 超时释放:锁超时释放虽然可以避免死锁,但如果是业务执行耗时较长,也会导致锁释放,存在安全隐患 主从一致性:如果Redis提 阅读全文
posted @ 2026-05-06 01:18 tcswuzb 阅读(7) 评论(0) 推荐(0)
摘要: 小鳥の翼がついに大きくなって 分布式锁 集群下的线程并发安全问题 在集群环境下,每台机器对应一个JVM,都存在一个独立的锁监视器,而常规的线程锁synchronized只能保证一个JVM的多线程安全,在集群环境下下无法生效 基本原理和实现方式 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的 阅读全文
posted @ 2026-05-05 20:48 tcswuzb 阅读(13) 评论(0) 推荐(0)
摘要: 夢の未来 君と僕のLIVE&LIFE 雷神点评——订单 订单ID 当用户抢购时,就会生成订单并保存到tb_voucher_order这张表中,而订单表如果使用数据库自增ID就存在一些问题: id的规律性太明显 受单表数据量的限制 全局ID生成器 全局ID生成器,是一种在分布式系统下用来生成全局唯一I 阅读全文
posted @ 2026-05-04 22:22 tcswuzb 阅读(5) 评论(0) 推荐(0)
摘要: 素敵だった未来に繋がった夢 雷神点评——商户查询缓存 由于商店数量较少,所以多次查询返回结果相同,且实际操作中往往查询操作占大多数,考虑使用缓存优化查询操作,避免多次访问数据库 缓存概念 缓存就是数据交换的缓冲区(称作Cache),是存贮数据的临时地方,一般读写性能较高。 缓存优缺点如下: 优点: 阅读全文
posted @ 2026-05-03 23:27 tcswuzb 阅读(3) 评论(0) 推荐(0)
摘要: 僕たちのこと 雷神点评——短信登录 原理:基于Session实现 我们实现短信登录的原理为基于Session实现,具体实现的短信登录流程流程如下: ①用户提交手机号并校验,服务端校验通过则生成验证码并保留验证码到本地Session,然后服务端发送验证码给用户 ②用户提交手机号和验证码,服务端校验验证 阅读全文
posted @ 2026-05-03 00:18 tcswuzb 阅读(5) 评论(0) 推荐(0)
摘要: また会おう 呼んでくれるかい? Redis的JAVA客户端 ‌Jedis‌是一个用Java编写的高性能Redis客户端,专为简化Java应用与Redis数据库之间的交互而设计,被广泛用于各类Java项目中。 Jedis核心功能与特性如下: ‌直接映射Redis命令‌: Jedis 提供了与Redis 阅读全文
posted @ 2026-04-30 23:27 tcswuzb 阅读(10) 评论(0) 推荐(0)
摘要: さよならは言わない Redis命令 通用命令 通用指令是部分数据类型的,都可以使用的指令,常见的有: KEYS:查看符合模板的所有key,不建议在生产环境设备上使用 DEL:删除一个指定的key EXISTS:判断key是否存在 EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除 阅读全文
posted @ 2026-04-30 16:02 tcswuzb 阅读(4) 评论(0) 推荐(0)
摘要: 光を追いかけてきた僕たちだから Redis Redis概念 ‌Redis是一个开源的高性能键值存储数据库‌(NoSQL)(Redis内存储的数据都是键值对),支持多种数据结构,广泛用于缓存、消息队列、实时分析等场景。 Redis基于内存存储数据,提供极高的读写性能(可达每秒数十万次操作),同时支持数 阅读全文
posted @ 2026-04-30 12:56 tcswuzb 阅读(4) 评论(0) 推荐(0)
摘要: 光を追いかけてきた僕たちだから 延迟消息 延迟消息是Rabbit消息可靠性的最终兜底机制 延迟消息:生产者发送消息时指定一个时间,消费者不会立刻收到消息,而是在指定时间之后才收到消息。 延迟任务:设置在一定时间之后才执行的任务 延迟消息实现 死信交换机 当一个队列中的消息满足下列情况之一时,就会成为 阅读全文
posted @ 2026-04-28 12:51 tcswuzb 阅读(5) 评论(0) 推荐(0)
摘要: 手を振ってもっと振って RabbitMQ可靠性 RabbitMQ 作为一款高性能、高可靠性的消息中间件,其核心设计思想之一就是保证消息的可靠传输。消息可靠性是指确保消息从生产者发送后,能够被消费者成功接收并处理至少一次(At least once)。 为了实现这一目标,需要从‌生产者发送‌、‌中间件 阅读全文
posted @ 2026-04-27 23:46 tcswuzb 阅读(4) 评论(0) 推荐(0)
摘要: 涙はいらない このまま踊ろう RabbitMQ-Java客户端 AMQP Advanced Message Queuing Protocol,是用于在应用程序之间传递业务消息的开放标准。该标准和平台、语言无关,更符合微服务中独立性的要求。 Spring AMQP,是基于AMQP协议定义的一套API规 阅读全文
posted @ 2026-04-26 22:24 tcswuzb 阅读(8) 评论(0) 推荐(0)
摘要: 離れたくないよ本当だよ RabbitMQ入门 RabbitMQ关键在于通过MQ队列实现了用户发送登录请求和登录请求处理的并行操作 同步/异步调用 同步调用 执行逻辑:阻塞式‌,调用方发起请求后,必须‌一直等待‌直到收到响应或超时,才能继续执行后续代码。调用线程在等待期间处于‌阻塞/空闲状态无法做其他 阅读全文
posted @ 2026-04-25 14:25 tcswuzb 阅读(13) 评论(0) 推荐(0)
摘要: みんなと出会えたこと嬉しくて IService接口 如果Mapper持久层可以简化的话,那么Service逻辑处理层代码同样也可以简化。这需要使用IService接口 IService接口通常指的是 ‌MyBatis-Plus‌ 框架中提供的通用Service层接口。它封装了常用的单表 CRUD(增 阅读全文
posted @ 2026-04-25 12:03 tcswuzb 阅读(5) 评论(0) 推荐(0)
摘要: No no no いまが最高! 自定义SQL 现在出现了一个更新操作:把部分员工的薪水集体添加666元 使用MyBatisPlus,利用BaseMapper<T>接口下的update方法和条件更新器LambdaUpdateWrapper实现如下 @Test void UpdateUserSalary 阅读全文
posted @ 2026-04-24 20:20 tcswuzb 阅读(7) 评论(0) 推荐(0)
摘要: drop table if exists user; create table user( id int primary key, name varchar(128) unique, team_id int, job_id int ); drop table if exists team; crea 阅读全文
posted @ 2026-04-24 16:24 tcswuzb 阅读(6) 评论(0) 推荐(0)
摘要: 切なくて時をまきもどしてみるかい? 读写分离 MyCat实现读写分离的核心原理是基于balance‌属性的配置。它通过拦截SQL语句,判断其类型(读或写),然后将请求路由到不同的物理数据库节点(DataNode)。 在配置文件schema.xml的<dataHost>标签中,balance属性决定了 阅读全文
posted @ 2026-04-23 15:58 tcswuzb 阅读(5) 评论(0) 推荐(0)
摘要: 夢の中で描いた絵のようなんだ 分库分表 随着互联网及移动互联网的发展,应用系统的数据量也是成指数式增长,若采用单数据库进行数据存储,存在以下性能瓶颈: ①IO瓶颈:热点数据太多,数据库缓存不足,产生大量磁盘IO,效率较低。请求数据太多,带宽不够,网络IO瓶颈限制。 ②CPU瓶颈:排序、分组、连接查询 阅读全文
posted @ 2026-04-23 12:16 tcswuzb 阅读(5) 评论(0) 推荐(0)
摘要: 遠くへと広がる海の色暖かく 主从复制 主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库(Master)同时向多台从库(Slave)进行复制,从库同时也可以作为其他从服务器的 阅读全文
posted @ 2026-04-22 21:19 tcswuzb 阅读(5) 评论(0) 推荐(0)
摘要: 旅立ちの日だよ 日志 日志分为四类:错误日志,二进制日志,查询日志和慢查询日志 错误日志 错误日志是MySQL中最重要的日志之一,它记录了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 查看错误日志位置: 阅读全文
posted @ 2026-04-22 19:39 tcswuzb 阅读(4) 评论(0) 推荐(0)
摘要: 小鳥の翼がついに大きくなって MYSQL管理 MYSQL系统数据库 MYSQL安装完成自带四个系统数据库: MYSQL指令 mysql 客户端使用数据库指令 mysql -u用户名 数据库名 -p密码 -e SQL指令 mysqladmin mysqladmin是一个非交互式的Shell命令行工具, 阅读全文
posted @ 2026-04-22 12:34 tcswuzb 阅读(4) 评论(0) 推荐(0)