- 博客(21)
- 收藏
- 关注
原创 Redis的string类及基础指令
Redis的string类型支持三种内部编码:int(64位整数)、embstr(短字符串)和raw(长字符串)。存储汉字时需注意编码问题,使用redis-cli --raw可正确显示汉字。基础指令包括SET(支持EX/PX/NX/XX选项)、GET、MSET/MGET(批量操作),以及INCR/INCRBY/DECR/DECRBY等数值增减命令。这些指令支持多种参数配置,能有效处理字符串和数值操作,提升Redis的使用效率。
2026-05-26 00:01:26
254
原创 Redis的基础指令
Redis基础指令摘要: Redis的6个核心基础指令:1) KEYS用于模式匹配查找键,但大数据量时需谨慎使用;2) EXISTS检查键是否存在;3) DEL删除指定键;4) EXPIRE设置键的过期时间(秒);5) TTL查看键剩余生存时间;6) TYPE返回键的数据类型。每个指令都包含语法说明、返回值解释和实用示例,涵盖了键的基本操作、过期时间管理和类型查询等核心功能。特别提醒KEYS*在大数据量时可能阻塞线程,EXPIRE/TTL都有对应的毫秒级版本PEXPIRE/PTTL。
2026-05-25 23:07:08
59
原创 Redis基础了解
Redis是一种基于内存的键值对NoSQL数据库,与MySQL等关系型数据库相比具有速度快、数据结构丰富等特点。Redis支持字符串、列表、哈希等多种数据结构,适用于缓存、排行榜、计数器等高频访问场景。其持久化机制包括RDB快照和AOF日志,但不保证强持久性。Redis与MySQL的主要区别在于存储位置(内存vs硬盘)、数据结构(键值对vs二维表)和事务支持程度。Redis适合高速读写但对持久性要求不高的场景,而MySQL更适合需要强一致性和持久性的核心业务数据存储。
2026-05-24 01:34:04
222
原创 网络原理初识
计算机之间相互独立,数据不共享、任务串行执行,效率低下A同学在电脑A上编写好了一份文件,需要交给B同学去修改,因为不能通过网络传输文件,所以A同学只好用U盘拷贝文件,然后找到B同学,让B同学将文件下载下来然后进行修改。在没有网络的情况下,计算机之间相互独立,数据不能共享,任务串行执行,一份文件需要A交给B后B才能修改,B在没有拿到文件之前就只能等待。将多台计算机连在一起,完成数据共享,数据共享的本质就是网络数据传输,也就是网络通信,根据网络互连的规模,可以划分为局域网和广域网。
2026-03-29 01:05:20
388
原创 计算机是如何工作的
这些程序,这些程序都需要占用CPU、内存、硬盘、网络等资源,如果你不对这些资源进行管理分配,那么这些程序就会乱用资源,互相干扰,甚至发生死机,可是并没有这样的事情发生,因为操作系统给每个进程分配了相应的资源供这些程序使用,让各个程序隔离开来,互不干扰,所以进程就被抽象成了资源分配的基本单位.运行程序时会创建一个进程,操作系统在这加载过程中会把这个程序中的指令和数据读出来加载到内存中,后续进程在运行时,就会从存放指令的内存中读取出来并执行,而在内存中存放的就是这些指令和所依赖的数据。
2025-11-09 00:28:47
954
原创 Java抽象类和接口
接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型.比如生活中常见的插座,有两个孔或三个孔,可以插符合规范的电器,也就是说,我的一个类实现了一个接口,那么我这个类要符合接口,也就是说,我要重写接口中的所有方法。
2025-09-04 01:55:58
377
原创 Java多态
int age;System.out.println(name+"吃饭");@OverrideSystem.out.println(name+"吃鱼");@OverrideSystem.out.println(name+"吃骨头");1.在Dog和Cat中的eat方法都重写了父类的eat方法,这就是多态的体现2.若不进行重写,也可以直接调用父类的方法。
2025-08-25 21:34:01
675
原创 Java 继承
继承(inheritance)机制:是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特 性的基础上进行扩展,增加新功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构, 体现了由简单到复杂的认知过程。继承主要解决的问题是:共性的抽取,实现代码复用。比如猫和狗都是动物,共性是有名字,年龄等,可以抽取出来父类/基类/超类子类/派生类。
2025-07-20 19:41:19
820
原创 Java 类与对象
什么是类?类是用来对一个实体(对象)来进行描述的,比如对象的属性和功能(比如洗衣机)类的定义// 创建类field;// 字段(属性) 或者 成员变量method;// 行为 或者 成员方法洗衣机// 品牌// 型号// 重量// 长// 宽// 高// 颜色public void washClothes() { // 洗衣服System.out.println("洗衣功能");public void dryClothes() { // 脱水。
2025-07-18 22:08:24
946
原创 Java运算符
当 & 和 | 的操作数为整数(int, short, long, byte) 的时候, 表示按位运算, 当操作数为 boolean 的时候, 表示逻辑运算.对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式.对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式.
2025-07-12 21:10:27
275
原创 Java数据类型与变量
double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差,因此浮点数是个近似值,并不是精确值。当进行操作时,代码需要经过一定的格式处理,不能自动完成。特点:数据范围大的到数据范围小的。代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。特点:数据范围小的转为数。据范围大的时会自动进行。
2025-07-12 19:15:11
367
原创 初识Java
2.负责加载字节码文件,并将其解释或即时编译为机器码执行,从而实现跨平台运行(“Write Once, Run Anywhere”)另:print + ‘\n’ —> System.out.print(“hello\n”);1.Java Virtual Machine(Java虚拟机)Java 通过 javac 编译成字节码。通过转义字符可以实现换行。
2025-06-26 21:19:21
230
原创 高精度减法
为了使代码可读性更高,可以提前定义好长度,但是有时候定义好了长度,而里面的东西改变了,遇到循环,循环的次数也会发生改变,所以长度的定义,要考虑前后的变化。从右向左寻找0,应该是找非零,改过后发现为零的结果名为有输出。2. 要先判断数的大小,让大数去减小数,同时记录正负号。判断 a3[0] + a3[1] 是否为零。从左向右找到零:忽略了结果里面的0。1. 参考高精度加法那一篇。
2025-05-20 22:22:29
604
原创 STL学习笔记(残血版)
返回一个指向容器“末端”的迭代器,这个“末端”实际上是指向最后一个元素之后的位置。,可以指向容器中的某个元素,并可以通过它的操作来访问或修改这些元素。迭代器提供了一种统一的方式来访问不同的数据结构,而不需要关心底层数据结构的具体实现。每次当现有容量不足时,它都会分配一个新的、通常更大的数组,并将旧数组中的元素迁移到新数组中。另外,当定义的不够大时,也会开辟新的空间。归属于string的一个静态成员常量(-1),通常用来表示一个无效的位置或者“直到字符串末尾”的位置。3.删除的原理:后面的把前面的覆盖掉。
2025-05-18 22:45:13
1245
原创 高精度加法(自然数)
因为逆序存的数再相加得到的数存入a3中是从a3[0]第一个位置开始的,便于后续的进位操作,要不然是正序的,例如 a3 ={12,8,9} ——> a3 = {1,2,8,9},要留出第一位的位置来存入进位,要后移数据,操作不便。因为刚开始时 sz 为最大的那一个字符串的长度,还没有判断最大位有没有进位,所以可以利用a3[sz]是否为0(a3[sz]在没有进位操作前是0)来判断是否进位,若进位,则sz++2.利用两个字符串来记录两个待加的数,再利用三个数组,其中两个存逆序的数,第三个存结果。
2025-05-18 22:37:12
287
原创 2025年4月天梯赛L2——9 算式拆解
1.题目已经要求好了给出的算式必带括号,所以不会出现3+4*5的现象。2.既然()的优先级更高,那我就找到最深层的()并且从左边开始,如遇到(1+2)*(3+4)的情况,也应该先输出1+2,再输出3+4,然后是*。3.我要用两个数来记录这俩括号的位置,所以用了指针,不过在c++里面引用(&)也可以完成这两数的实时记录。
2025-04-28 22:55:37
276
原创 2025年4月天梯赛L1——8 现代战争
1.例如 vector<vector<int>> arr(4,vector<int>(4)),这类似于一个二位数组arr[4][4],最外面的vector<>代表一个容器,里面存放着4个vector<int>(4)类型的数据,即这个容器的每一个元素都包含可以放4个整形的容器。5.erase(arr.begin() + x),可以删除指定位置的数据,pop_back()是弹出末尾的数据,+x的x是自己定的,而pop_back()不能指定位置。2.arr.size(),可以返回这个容器里面的元素个数。
2025-04-26 22:55:07
358
2
原创 2025年4月天梯赛L1——7 大幂数
例如(1)a[100000] 是试出来的,(2)2<n<2^31,所以定义n的时候要大一点,同时指数部分也从这里得知循环次数,小于31。3.flag的使用,本想着以flag的0,1来得知有无大幂数,但是忽略了会有多种情况的问题,91就有两个结果,所以就用flag>=1来判断,为什么是>=1?如果n有一种结果,这次循环找到了,而往后的循环没有了,flag便为0,就无法用flag==1来判断输出部分。1.根据题目形式,有两个东西在变,底数和指数,所以我就想到了双重循环。
2025-04-24 00:00:50
713
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅