自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Docker】快速入门与项目部署实战

《Docker技术快速入门与项目部署实践》本文介绍了Docker技术如何简化项目部署流程,解决传统部署方式中的常见问题。主要内容包括:Docker优势:通过镜像打包应用及其依赖环境,实现跨平台部署,避免环境差异带来的问题。快速入门:以MySQL为例,演示docker run命令一键部署,对比传统部署方式的效率差异。核心概念:解释镜像(image)与容器(container)的关系,介绍DockerHub镜像仓库。命令解读:详细解析docker run命令参数,包括端口映射、环境变量设置等关键配置

2025-06-11 16:07:38 1934 3

原创 【Redis实战篇】用户签到、UV统计

本文介绍如何利用Redis的BitMap数据结构高效实现用户签到功能。通过将每个月的签到情况映射到bit位上(1表示已签到,0表示未签到),可以大幅节省存储空间。具体实现包括:1)使用SETBIT命令记录签到;2)通过BITFIELD获取签到数据,并统计连续签到天数;3)利用位运算逐个判断签到状态。此外,还探讨了使用BitMap解决缓存穿透问题的方案,即通过哈希算法将数据库ID映射到bit位,快速判断数据是否存在。相比传统数据库存储方式,BitMap方案在空间利用率和查询效率上具有显著优势。

2025-05-26 18:30:32 1007 2

原创 【Redis实战篇】附近商铺

本文介绍了Redis GEO数据结构在附近商户搜索功能中的应用。主要内容包括:1) GEO数据结构的常用命令,如GEOADD、GEODIST等;2) 将商户数据按类型分组导入Redis GEO的Java实现;3) 基于GEOSEARCH命令实现附近商户查询功能的技术方案,包括Spring Data Redis版本升级和分页查询处理。通过将商户坐标与类型信息存储在Redis中,系统能够高效地根据用户位置返回附近商户列表,并按距离排序展示

2025-05-24 16:29:09 754 1

原创 【Redis实战篇】好友关注

本文介绍了如何实现用户关注与取消关注功能,以及共同关注功能的实现思路。通过FollowController和FollowService中的代码,展示了如何通过接口实现关注、取关和判断是否关注的功能。关注关系通过tb_follow表进行管理,并使用Redis的set数据结构存储关注列表。共同关注功能则通过计算两个用户的关注列表的交集来实现,利用Redis的set集合操作API,能够高效地找到共同关注的用户。文章还提到,在用户个人页面中,可以通过查询用户详情和笔记信息,进一步展示共同关注的好友列表

2025-05-22 13:54:22 1123

原创 【Redis实战篇】达人探店

本文介绍了达人探店功能的实现,主要包括发布探店笔记、查看探店笔记和点赞功能。发布探店笔记时,用户可以通过接口上传图片并保存博客内容。查看探店笔记时,系统会根据博客ID查询相关博客信息,并关联用户信息。点赞功能通过Redis的set集合实现,确保用户只能点赞一次,并支持取消点赞。具体实现包括在Blog类中添加isLike字段,修改点赞逻辑以判断用户是否已点赞,并在查询博客时设置isLike字段。通过这些功能,用户可以分享探店体验、查看他人笔记并进行互动。

2025-05-20 13:17:34 991 1

原创 【Redis实战篇】Redis消息队列

消息队列是一种用于在应用程序之间传递消息的机制,主要由消息队列、生产者和消费者三个角色组成。消息队列的主要优势在于解耦,使得生产者和消费者可以异步处理消息,提高系统的响应速度和可靠性。Redis提供了多种实现消息队列的方式,包括基于List、PubSub和Stream的数据结构。基于List的消息队列简单易用,但存在消息丢失和单消费者限制的问题;PubSub支持多生产者和多消费者,但不支持数据持久化和消息堆积处理;Stream是Redis 5.0引入的新数据类型,功能完善,支持消息回溯、多消费者、阻塞读取和

2025-05-18 16:33:48 1065 1

原创 【Redis实战篇】秒杀优化

文章主要探讨了秒杀业务的优化策略,特别是通过异步处理和Redis技术来提升系统性能。首先,文章分析了传统下单流程的瓶颈,指出串行操作和数据库访问导致的高延迟问题。接着,提出了优化方案,即将库存和用户资格判断逻辑移至Redis中,利用Lua脚本确保操作的原子性,并通过阻塞队列实现异步下单。这种设计不仅提高了响应速度,还避免了线程池资源耗尽的风险。然而,文章也指出了基于阻塞队列的异步秒杀可能面临的内存限制和数据安全问题,并暗示将在后续文章中探讨解决方案。

2025-05-14 22:10:26 1107 1

原创 【Redis实战篇】分布式锁-Redisson

Redisson是一个基于Redis的Java驻内存数据网格,提供了多种分布式服务,包括分布式锁的实现。传统的基于setnx的分布式锁存在重入问题、不可重试、超时释放和主从一致性等问题。Redisson通过可重入锁、重试机制、超时释放和主从一致性解决方案,有效解决了这些问题。Redisson的可重入锁原理类似于Java的ReentrantLock,通过hash结构记录锁的状态和持有线程,并使用Lua脚本保证操作的原子性。Redisson的快速入门包括引入依赖、配置客户端和使用分布式锁进行并发控制。通过Red

2025-05-12 22:38:51 1761 1

原创 【Redis实战篇】分布式锁:原理、实现与优化全解析

Redis分布式锁的核心思路是通过setnx命令实现锁的获取与释放,并通过超时机制防止死锁。然而,Redis分布式锁存在误删问题,即一个线程可能误删另一个线程的锁,导致并发安全问题。为解决此问题,可以在锁中存入线程标识,并在释放锁时进行标识比对,确保只有持有锁的线程才能释放锁。此外,Redis的Lua脚本功能可以确保多条命令的原子性执行,进一步解决分布式锁的原子性问题。通过合理设计,Redis分布式锁能够有效保障分布式系统的并发安全。

2025-05-11 23:10:37 1495 1

原创 【Redis实战篇】优惠券秒杀

操作逻辑是在操作时,对版本号进行+1 操作,然后要求version 如果是1 的情况下,才能操作,那么第一个线程在操作后,数据库中的version变成了2,但是他自己满足version=1 ,所以没有问题,此时线程2执行,线程2 最后也需要加上条件version =1 ,但是现在由于线程1已经操作过了,所以线程2,操作时就不满足version=1 的条件了,所以线程2无法执行成功。内部,有两个线程,这两个线程由于使用的是同一份代码,那么他们的锁对象是同一个,是可以实现互斥的,但是如果现在是服务器B的。

2025-05-10 22:42:17 881 1

原创 【Redis实战篇】商户查询缓存

了解什么是缓存、如何使用缓存、缓存的更新策略、双写一致问题、认识什么是缓存穿透、缓存雪崩、缓存击穿等,以及在项目中的运用。

2025-05-08 20:17:31 1310 1

原创 【Redis实战篇】短信登录

项目实战之短信登录验证

2025-05-05 11:45:18 869 1

原创 【Git】解决On branch master Your branch is ahead of ‘origin/master‘ by 1 commit. (use “git push“ to pu

gitee常遇到的错误

2025-05-04 21:43:50 1197

原创 【Redis】Java操作Redis之SpringDataRedis

java操作redis,着重介绍redisTemplate以及StringRedisTemplate

2025-05-04 14:57:45 1174

原创 【Redis】Redis常用命令

Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样:命令太多,不需要死记,学会查询就好了~Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网()可以查看到不同的命令:当然我们也可以通过在redis桌面客户端中使用Help命令来帮助我们去查看命令。

2025-05-04 12:44:16 1182

原创 【Java并发编程】变量的线程安全分析

juc并发编程,关于变量的线程安全分析

2025-02-19 22:58:28 605 1

原创 【C++】map与set

关联式容器的介绍、set、multiset、map、multimap。

2023-11-27 21:17:44 539 6

原创 【C++进阶】二叉搜索树(BSTree)

二叉搜索树的基本操作(查找、删除、插入)、二叉搜索树的应用,KV模型。

2023-11-22 12:32:20 312 2

原创 【C++进阶】多态

讲解多态的概念、多态的定义及实现、抽象类、多态的原理、单继承和多继承关系的虚函数表、继承和多态常见的面试题。

2023-11-14 16:37:30 202 2

原创 【C++进阶】继承

继承的概念与定义、基类与派生类对象赋值转换、继承中的作用域、派生类的默认成员函数、继承与友元、继承与静态成员、菱形继承与虚继承、继承的总结与反思。

2023-11-09 15:34:27 409 3

原创 【C++】模板进阶

非类型模板参数、模板的特化、模板分离编译

2023-11-06 17:44:07 279 1

原创 【数据结构与算法篇】还不会二分查找?看这篇就够了!

整数二分算法(朴素二分,查找区间左端点与区间右端点二分)、浮点数二分

2023-10-22 14:21:18 355 6

原创 【C/C++】STL——容器适配器:stack和queue的使用及模拟实现

stack与queue的介绍与使用、模拟实现。

2023-10-17 15:39:28 238 3

原创 【C/C++】STL——深度剖析list容器

list的介绍与使用、深度剖析及模拟实现。

2023-10-12 20:39:29 470 8

原创 【C/C++】STL——深度剖析vector容器

vector的介绍与使用、深度剖析及模拟实现。

2023-10-08 16:45:39 428 5

原创 【C/C++】关于vector迭代器失效问题

vector迭代器失效问题

2023-10-08 16:29:30 538

原创 【C/C++】string类的使用&&探索string底层原理

C++ string类的使用、探索string底层的原理、实现string类

2023-09-24 17:00:30 314 4

原创 【Linux】调试工具gdb

Linux调试工具gdb的使用教程

2023-09-21 18:54:06 469 1

原创 【C++初阶】模板

泛型编程的认识、函数模板、类模板。

2023-09-21 11:52:46 219 1

原创 【C++初阶】动态内存管理

C/C++内存分布、C语言动态内存管理、C++动态内存管理、operator new与operator delete函数、new和delete的实现原理、定位new表达式、常见面试问题等

2023-09-18 18:00:24 332 1

原创 【Linux】自动化构建工具:make/Makefile

工具使用的背景、理解make/makefile工具、探索工作原理(文件修改时间的对比)、.PHONY伪目标、特性等。

2023-09-14 17:58:41 836 2

原创 【Linux环境】编译器 gcc/g++的使用

预处理、编译、汇编、链接、动静态库、gcc选项等。

2023-09-13 17:04:51 271 3

原创 【Linux环境】基础开发工具的使用:yum软件安装、vim编辑器的使用

yum软件包管理、vim编辑器的使用。

2023-09-12 16:22:40 502 12

原创 【Linux基础】权限管理

用户之间的切换、sudo提权、Linux权限管理、文件访问权限的相关方法、目录权限、粘滞位

2023-09-11 19:06:40 430 18

原创 【C++基础】类与对象(下) 初始化列表、友元、内部类、匿名对象

C++基础语法。初始化列表、explicit关键字、static成员、友元、内部类、匿名对象、拷贝对象时的一些编译器优化等。

2023-09-08 22:15:46 379 20

原创 【C++基础】类与对象(中):默认成员函数、构造函数、析构函数、拷贝构造、赋值重载函数……

六大默认构造函数简介、构造函数、析构函数、拷贝构造函数、赋值重载函数、const成员函数、取地址重载等。

2023-09-07 17:16:19 525 16

原创 【C++基础】实现日期类

C++实现日期类

2023-09-07 17:13:44 692 1

原创 【C++基础】类与对象(上):访问限定符、类作用域、类实例化、类对象模型、this指针

C++基础语法:访问限定符、类作用域、类实例化、类对象模型、this指针。

2023-09-06 10:17:38 413 9

原创 【C++入门】命名空间、缺省参数、函数重载、引用、内联函数

C++入门必备语法

2023-09-03 09:45:06 526 1

原创 【数据结构与算法篇】手撕八大排序算法之快排的非递归实现及递归版本优化(三路划分)

利用数据结构栈(Stack)来模拟递归,实现快排的非递归版本;递归版本测试OJ题时,有大量重复元素样例不能通过,导致性能下降,优化快速排序通过将数组划分为三个区域,可以更有效地处理重复元素。

2023-08-28 22:17:18 419 3

C++ stl-list.h(SGI)

有关list的源代码文件(SGI版本)

2023-10-12

空空如也

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

TA关注的人

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