自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shuai的博客

知识共享

  • 博客(269)
  • 资源 (2)
  • 收藏
  • 关注

原创 MySQL 角色管理

MySQL 8.0 角色管理摘要 MySQL 8.0引入了角色功能,用于简化权限管理。角色本质上是特殊用户账户(account_locked=Y且password_expired=Y)。主要操作包括: 创建角色:使用CREATE ROLE命令,可批量创建多个角色。 授权角色:与用户授权语法相同,使用GRANT命令为角色分配权限。 分配角色:通过GRANT ... TO将角色授予用户,但默认不自动激活。 激活角色: 手动激活(SET ROLE命令) 设置默认角色(SET DEFAULT ROLE) 全局自动激

2026-07-29 01:31:55 263

原创 MySQL 权限管理

MySQL权限管理摘要 核心内容 查看权限 当前用户:SHOW GRANTS 或 SHOW GRANTS FOR CURRENT_USER 指定用户:SHOW GRANTS FOR 'user'@'host' MySQL 8.0权限显示更详细,包含动态权限 用户授权 推荐两步操作:先CREATE USER再GRANT 用户由"用户名@主机"唯一标识(如'appuser'@'%') 基础语法:GRANT 权限 ON 数据库.表 TO '用户'@'主机' 版本差异 MySQL 8.0新增动态权限机制,权限显示更

2026-07-29 01:30:20 180

原创 redis跳表

Redis跳表是有序集合(ZSet)的核心数据结构之一,通过多层索引实现O(logN)的查询效率。它采用概率平衡的随机层数设计,避免了复杂的平衡操作,同时通过后退指针和跨度值支持双向遍历和快速排名计算。跳表与哈希表协同工作,分别负责排序和快速查询功能。这种设计在保证性能的同时简化了实现,是Redis高效有序集合操作的关键所在。

2026-06-30 02:41:39 158

原创 redis数据类型与底层数据结构-redis6与redis7的区别

Redis 7 对底层数据结构进行了重大优化,使用 listpack 替代 ziplist 解决级联更新问题,提升性能稳定性。SDS 优化了字符串处理,支持 O(1) 获取长度、自动扩容和二进制安全。不同数据类型根据元素数量和大小选择不同编码:String 有 int/embstr/raw 三种编码;Hash/List/ZSet 在小数据量时使用 listpack(Redis7)/ziplist(Redis6),大数据量转为 hashtable/quicklist;Set 对整数集合使用 intset。通过

2026-06-30 02:41:06 344

原创 redis红锁Redlock

Redis红锁Redlock摘要 Redis红锁(Redlock)是一种分布式锁算法,通过在多个独立的Redis节点上获取锁来实现高可用性。核心原理是客户端需要在大多数节点(N/2+1)上成功获取锁,且总耗时小于锁有效期才算成功。Redisson提供了Redlock实现,配置时需要多个完全独立的Redis节点。使用时需注意:1)节点间不使用复制或协调系统;2)设置合理的超时时间;3)获取锁失败时要释放所有实例上的锁。SpringBoot中可通过配置多个RedissonClient实例来实现Redlock,每

2026-05-23 13:21:53 388

原创 redis分布式锁

本文介绍了Redis分布式锁的实现方法。主要内容包括:1)基础分布式锁实现,使用SET NX PX命令原子性加锁,配合Lua脚本实现原子性解锁;2)带重试机制的加锁方法,提高高竞争场景下的成功率;3)带续期功能的分布式锁,通过后台线程定期延长锁有效期。文档提供了Redis 7.0.0和Spring Boot 3.2.0环境下的代码示例,并强调了非原子解锁的风险。相关资源包括Redis官方文档和单机安装指南。

2026-05-23 12:46:18 659

原创 openclaw对接飞书

本文详细介绍了如何将OpenClaw系统与飞书机器人进行对接。内容包括飞书侧的配置步骤(创建企业自建应用、权限设置、事件订阅、发布应用等)和OpenClaw侧的配置流程(添加channel、配置连接参数、绑定agent等)。重点说明了使用WebSocket长连接方式、群聊白名单策略以及用户配对授权机制。最后提供了测试验证方法,确保对接成功后机器人能正常响应消息。整个过程涉及飞书开发者后台和OpenClaw系统的协同配置,并强调了安全性和可控性的注意事项。

2026-04-09 01:19:55 707

原创 openclaw添加自定义agent

本文介绍了在OpenClaw中添加自定义Agent的步骤。首先通过观察openclaw.json配置文件中的agents部分,了解默认配置。然后进入Docker容器执行命令添加名为"coder"的新Agent,配置其工作路径和模型参数。添加完成后,配置文件中会新增该Agent信息,但需注意目前无法直接为Agent配置专属模型。最后需要重启相关Docker容器使配置生效。整个过程包括进入容器、执行配置命令、退出容器和重启服务等步骤。

2026-04-09 01:15:40 625

原创 openclaw添加大模型-千问大模型-qwen3-max

本文介绍了如何在OpenClaw中集成阿里云千问大模型(Qwen3-Max)。主要内容包括:通过百炼平台开通模型服务并获取API Key;在Docker容器中配置OpenClaw,设置自定义模型提供商,指定API基础URL和密钥;配置完成后重启相关服务即可在Web界面使用该大模型。文档特别提醒要注意百万免费额度的使用限制,建议开启"用完即停"功能避免超额收费。配置过程通过交互式命令完成,最终会生成包含模型信息的openclaw.json配置文件。

2026-03-31 02:09:02 422

原创 ubuntu安装openclaw-docker安装openclaw

Ubuntu安装OpenClaw的Docker部署指南 本文详细介绍了在Ubuntu Server 24.04.4 LTS系统上使用Docker部署OpenClaw的步骤。通过Docker Compose配置实现了OpenClaw Gateway和Nginx反向代理的容器化部署,解决了官方镜像下载慢、端口绑定限制等问题。部署过程中需要注意容器网络栈共享、文件权限修改等关键配置,并提供了解决"origin not allowed"错误的方案。Docker部署方式有效实现了环境隔离和安全性增

2026-03-31 02:04:44 1052

原创 redis内存淘汰策略

Redis内存淘汰策略摘要 Redis提供8种内存淘汰策略,当内存达到maxmemory限制时触发。主要包括: noeviction:不淘汰,写入报错 allkeys-lru/volatile-lru:基于最近最少使用淘汰 allkeys-lfu/volatile-lfu:基于访问频率淘汰 random:随机淘汰 volatile-ttl:淘汰TTL最短的key 推荐策略: 纯缓存场景使用allkeys-lru/allkeys-lfu 混合场景使用volatile策略 严格不丢数据用noeviction 配

2026-03-14 23:41:21 570

原创 redis执行lua脚本

本文介绍了Redis执行Lua脚本的方法,重点讲解了分布式锁的实现方案。主要内容包括:1)单机版Redis安装指南;2)Lua脚本编写示例,通过SETNX和PEXPIRE实现原子性加锁;3)Lua脚本的三种执行方式(EVAL、EVALSHA和文件加载);4)KEYS与ARGV参数的区别及规范要求;5)脚本预加载和SHA1校验机制。文档基于Redis 7.0.0和Spring Boot 3.2.0版本,提供了详细的命令示例和操作说明,适用于需要实现Redis分布式锁或原子操作的开发者参考。

2026-03-14 23:40:31 544

原创 redis缓存预热、缓存击穿、缓存穿透、缓存雪崩

Redis缓存问题及解决方案摘要 Redis缓存常见问题包括: 缓存预热:系统启动前加载热点数据,避免初始请求冲击数据库。需设置合理过期时间并加随机偏移。 缓存击穿:热点key失效时大量请求直达数据库。解决方案:双检加锁、逻辑过期、单飞模式、多级缓存等。 缓存穿透:查询不存在的数据导致反复访问数据库。解决方案:布隆过滤器、缓存空值、参数校验等。 缓存雪崩:大量key同时失效导致数据库压力激增。可通过设置不同过期时间、多级缓存等方式预防。 文档还包含Redis安装配置、集群搭建、布隆过滤器实现等实用内容。

2026-02-05 23:04:28 765

原创 guava布隆过滤器及cuckoo过滤器

本文介绍了Guava布隆过滤器和Cuckoo过滤器的实现与使用。Guava布隆过滤器通过BloomFilter.create()创建,支持指定预期插入数量和误判率,但不支持删除操作。Cuckoo过滤器相比Guava增加了删除功能,通过CuckooFilter.Builder构建,同样可配置容量和误判率。两种过滤器都适用于大数据量下的高效元素判断场景,但Cuckoo过滤器功能更全面。文中提供了两种过滤器的Java实现示例、Maven依赖配置及性能特点说明,并附有相关技术文档和参考资料链接。

2026-02-05 23:02:53 717

原创 redis实现布隆过滤器

本文介绍了两种基于Redis实现布隆过滤器的方法。第一种使用Redisson的RBloomFilter组件,通过Bitmap底层实现,提供了IP黑名单管理的示例代码,包括添加和查询功能。第二种方法手动实现布隆过滤器逻辑,详细说明了bit数组、哈希函数等核心概念,以及n、p、m、k参数之间的关系。两种方法都适用于大规模数据场景下的高效存在性判断,具有空间效率高和查询速度快的特点。文档还提供了相关Redis安装、集群搭建和SpringBoot整合的参考资料,以及官方文档链接和下载地址。

2026-01-31 18:49:17 1125

原创 springboot整合redisson单机模式

本文介绍了SpringBoot整合Redisson单机模式的两种实现方式。第一种方式通过手动创建RedissonClient Bean,复用Spring的Redis配置(application.yml),需要引入spring-boot-starter-data-redis和redisson依赖,并配置RedissonConfig类。第二种方式使用redisson-spring-boot-starter自动装配RedissonClient,简化配置流程。两种方式均支持连接池参数配置、密码认证等特性,并提供了示

2026-01-31 16:57:18 1113

原创 布隆过滤器 -Bloom Filter

布隆过滤器是一种概率型数据结构,用于高效判断元素是否存在于集合中。它由位数组和多个哈希函数组成,添加元素时将对应位置置1,查询时若所有位置均为1则认为可能存在(可能有误判),若有0则一定不存在(不漏判)。其核心特点是空间效率高但存在误判率,不支持删除操作。典型应用包括防止缓存穿透、爬虫URL去重和黑名单过滤等场景。布隆过滤器适用于允许少量误判但要求快速判断的大规模数据场景。

2026-01-21 02:20:46 561

原创 canal安装及使用

本文介绍了Canal的安装与使用指南。Canal作为阿里巴巴开源的数据同步工具,通过模拟MySQL从库协议获取主库binlog数据。文档详细说明了安装前的准备工作,包括MySQL主库配置ROW模式的binlog、创建专用账户等。提供了Canal v1.1.8版本的下载地址及各组件功能说明,重点讲解了canal.deployer服务端的安装步骤和配置文件修改要点。文章还解释了Canal的工作原理,强调其作为"伪从库"获取并解析binlog的特性,最后给出了MySQL主库的授权SQL语句示例

2026-01-21 02:19:45 470

原创 redis缓存双写

本文档介绍了Redis缓存双写相关内容,包括单机安装指南、集群搭建方法和大Key问题解决方案。重点分析了缓存双写策略及其一致性问题,比较了"先更新数据库再删除缓存"(推荐)和"先更新数据库再更新缓存"两种模式,通过时序场景说明了可能出现的数据不一致情况,如读取旧值、缓存击穿等问题。文档还提供了Redis官方资源链接和7.0.0版本的下载地址,为开发者实施缓存双写策略提供了技术参考。

2025-12-24 01:57:23 643

原创 redis定期删除

本文介绍了Redis定期删除功能的配置方法及相关资源。主要内容包括:1) 提供Redis单机安装、集群搭建和大key处理的参考文档;2) 列出官方文档和下载地址,推荐使用Redis 7.0.0版本;3) 重点说明定期删除配置参数"hz"的作用,该值控制后台任务执行频率(默认10,范围1-500),影响过期键清理效率;4) 提供中文配置说明和注意事项。文中还包含相关视频教程参考链接。

2025-11-30 23:59:08 1032

原创 redis大key问题-scan、hscan、sscan、zscan等命令

Redis大Key问题解决方案:SCAN系列命令详解 本文介绍了Redis中处理大Key问题的SCAN系列命令,包括SCAN、HSCAN、SSCAN和ZSCAN。这些命令通过游标迭代方式,避免像KEYS命令那样阻塞服务器。文档详细说明了SCAN命令的基本语法、参数含义和使用示例,特别介绍了HSCAN在Redis 7.4新增的NOVALUES参数。通过实际示例展示了如何扫描特定前缀的key和hash类型字段,强调COUNT参数仅作为提示值而非精确返回数量。文章还提供了相关官方文档和测试数据生成方法的参考链接。

2025-11-30 21:21:56 1353

原创 redis禁用keys、flushdb、flushall等命令

Redis禁用高危命令指南:通过修改redis.conf配置文件,可以禁用KEYS、FLUSHDB、FLUSHALL等危险命令。推荐使用rename-command将这些命令重命名为空字符串(如rename-command KEYS ""),以防止生产环境中误操作导致数据丢失或服务阻塞。文档还提供了SCAN命令作为KEYS的安全替代方案,并指出命令重命名方式已弃用,建议改用ACL权限控制。禁用命令后若AOF文件包含相关指令可能导致启动失败,需手动清理AOF文件中的对应命令。

2025-11-30 21:18:31 977

原创 redis惰性删除与异步删除

Redis提供了惰性删除和异步删除两种机制。惰性删除指过期的key不会立即删除,而是在访问时检查并删除,这是Redis的默认行为。异步删除通过UNLINK命令实现,它先逻辑删除key,再异步释放内存,避免DEL命令的同步阻塞问题。在redis.conf中,LAZY FREEING相关配置控制内存释放方式,如lazyfree-lazy-expire决定过期键的内存释放是否异步。惰性删除无法关闭,而异步删除可通过配置选择使用场景,如内存回收、过期处理等场景是否采用异步方式。

2025-11-29 22:07:37 1575

原创 redis大key问题-生成大key-生成100万条测试数据

本文介绍了Redis大key问题的测试方法,包括安装Redis 7.0.0单机版,并通过脚本批量生成不同数据类型的测试数据。详细展示了如何创建不同规模的大key:字符串类型(5万-50万字符)、哈希类型(5万-50万键值对)、列表类型(5万-50万元素)、集合类型(5万-50万成员)和有序集合类型(5万-50万成员)。同时提供了查看各类型key大小的命令,如STRLEN、HLEN等,为分析Redis大key问题提供了完整的测试方案。

2025-11-29 22:06:12 967

原创 redis大key问题

Redis大key问题解析:大key主要指value过大的情况,String类型建议控制在10KB以内,其他类型元素不超过5000个。可通过redis-cli --bigkeys扫描最大key,或使用memory usage查看具体内存占用。删除大key时,String类型建议用unlink异步删除,其他类型采用渐进式删除(先删元素再删key)。本文基于Redis 7.0.0版本,包含单机安装参考和官方文档链接。

2025-10-23 23:40:24 519

原创 mysql8支持远程访问 -mysql5.7支持远程访问

MySQL远程访问配置对比:5.7版本可直接创建远程用户并授权,使用"grant all privileges"语句同时完成用户创建和权限分配;8.0版本则需分两步操作,先创建用户再单独授权。两者都需要预先设置密码级别,8.0版本将用户创建与授权分离,安全性更高。授权语句基本相同,都赋予用户全部数据库权限和权限传递能力(with grant option)。(98字)

2025-10-19 23:51:02 263

原创 springboot整合redis-RedisTemplate集群模式

本文介绍了SpringBoot整合Redis集群模式的方法,主要内容包括:1)搭建Redis集群环境;2)引入SpringBoot的Redis依赖;3)配置集群连接参数,如节点地址、密码、连接池和刷新策略等;4)自定义RedisTemplate的Bean以解决序列化问题,配置了String类型的key序列化和JSON格式的value序列化。文章提供了详细的YAML配置示例和Java配置类代码,并说明了各参数的作用,适用于SpringBoot 3.2.0和Redis 7.0.0环境。

2025-10-19 21:44:27 1286

原创 springboot整合redis-RedisTemplate单机模式

本文介绍了SpringBoot整合Redis的单机模式实现。主要内容包括:Redis单机安装、SpringBoot依赖引入(3.2.0版本)、Lettuce连接池配置、RedisTemplate使用示例。示例代码展示了通过RedisTemplate实现订单数据的存取操作,包含键值对存储、随机ID生成、日志记录等功能。配套文档提供了Redis数据类型、持久化、集群模式等20余篇技术文章链接,以及Redis官方文档参考,适用于开发者快速实现SpringBoot与Redis的整合应用。

2025-10-19 21:39:30 845

原创 springboot整合redis-Lettuce

本文介绍了SpringBoot整合Redis-Lettuce的方法,包括Redis单机安装、数据类型操作及持久化等基础知识。详细说明了如何使用Lettuce连接单机版Redis,涵盖字符串、列表、哈希、集合和有序集合等基本数据类型的操作示例。提供了Redis 7.0.0与SpringBoot 3.2.0的版本兼容性说明,并给出完整的代码实现,包括连接配置、命令执行和结果处理等关键步骤。适合需要快速上手Redis-Lettuce集成的开发者参考。

2025-10-18 01:00:03 496

原创 springboot整合redis-Jedis

本文介绍了SpringBoot整合Redis-Jedis的详细过程。主要内容包括Redis单机安装、常用数据类型操作,以及通过Jedis客户端连接Redis的完整示例代码。文章提供了Redis 7.0.0和SpringBoot 3.2.0环境下的配置方法,演示了字符串、列表、哈希、集合和有序集合等数据类型的CRUD操作,并附有相关官方文档和详细教程链接。开发者可快速通过该指南实现SpringBoot项目与Redis的集成。

2025-10-18 00:58:38 417

原创 11 - spring security自定义短信验证码登录

本文介绍了如何实现Spring Security自定义短信验证码登录功能。主要内容包括:自定义身份认证令牌TextMessageAuthenticationToken(参考UsernamePasswordAuthenticationToken实现已认证/未认证状态)、自定义登录认证过滤器TextMessageAuthenticationFilter(处理短信登录请求,提取手机号和验证码参数)以及自定义认证提供者TextMessageAuthenticationProvider(实现短信验证码认证逻辑)。文档

2025-10-15 01:27:40 531

原创 10 - spring security基于账号密码的登录流程

本文摘要总结了Spring Security基于账号密码的登录流程。主要内容包括:1) 登录流程在项目启动时完成相关对象初始化;2) POST请求/login时会调用UsernamePasswordAuthenticationFilter进行认证处理;3) ProviderManager使用多个AuthenticationProvider依次尝试认证;4) DaoAuthenticationProvider负责实际认证工作,验证成功后返回已认证状态的UsernamePasswordAuthenticatio

2025-10-15 01:25:42 452

原创 09 - spring security加载流程

Spring Security 加载流程摘要: 核心配置类HttpSecurityConfiguration通过@Bean创建原型作用域的HttpSecurity对象,初始化默认安全配置(CSRF、登录页等)。 SpringBootWebSecurityConfiguration提供默认的SecurityFilterChain Bean,配置基础认证规则(anyRequest().authenticated())。 开发者可通过自定义SecurityFilterChain Bean覆盖默认配置,此时会注入预

2025-09-22 23:39:09 1063

原创 08 - spring security基于jdbc的账号密码

Spring Security基于JDBC的认证实现 本文介绍了Spring Security框架中基于JDBC的账号密码认证实现方式。主要内容包括:1) 使用Spring Security提供的JdbcUserDetailsManager实现数据库认证;2) 创建适配MySQL的users和authorities表结构;3) 配置数据源和UserDetailsManager Bean;4) 演示用户创建和权限分配。相比内存认证,JDBC认证将用户信息持久化到数据库,并自动处理登录认证等核心功能。文章还提供

2025-09-22 23:33:59 1011 1

原创 07 - spring security基于数据库的账号密码

本文介绍了如何在Spring Security中实现基于数据库的账号密码认证。主要内容包括:1)添加MyBatis-Plus和MySQL依赖;2)配置数据库连接信息;3)创建用户实体类和Mapper接口;4)自定义DatabaseUserDetailsManager实现UserDetailsManager接口,重写loadUserByUsername方法从数据库查询用户信息。通过这种方式替代内存存储的用户认证数据,使系统能够从数据库获取用户凭证进行安全认证。文中还提供了相关配置文件和代码示例,帮助开发者快速

2025-08-24 20:15:19 415

原创 06 - spring security角色和权限设置

摘要:本文介绍了Spring Security中角色和权限的设置方法。通过代码示例展示了如何在内存中配置用户权限(使用.authorities()方法)和角色(使用.roles()方法),并指出两者不能同时使用(后者会覆盖前者)。特别说明.roles()方法实际是添加ROLE_前缀的权限,且角色名不能以ROLE_开头。文中还提供了相关技术文档链接供进一步参考。(148字)

2025-08-24 20:12:52 483

原创 redis集群模式 -批量操作

本文介绍了Redis集群模式下键值对批量操作的注意事项。由于Redis集群采用分片机制,批量操作命令(如mset、mget)要求所有key必须位于同一slot,否则会报错"CROSSSLOT"错误。为解决此问题,可通过在key中添加相同的大括号标记(如k1{group1}),使这些key被分配到同一slot。需要注意的是,大括号标记会作为key的一部分,后续操作也需使用完整key名。文章还详细说明了Redis集群中key命中slot的哈希规则,并提供了实际示例演示如何正确处理集群模式下的

2025-08-24 20:10:06 816

原创 gitlab、jenkins等应用集成ldap

本文介绍了GitLab和Jenkins与LDAP的集成方法。GitLab方面,通过修改配置文件/etc/gitlab/gitlab.rb,设置LDAP服务器信息、登录属性等参数,执行gitlab-ctl reconfigure完成配置。Jenkins方面,通过管理界面配置LDAP服务器地址、用户搜索路径、管理员信息等,并设置显示名称和邮箱属性。文章还提供了配置异常时的恢复方法,即还原备份的config.xml文件。两种集成方式均详细说明了关键参数设置和参考文档链接。

2025-08-19 23:11:42 1110

原创 openldap安装 -添加条目

本文介绍了OpenLDAP 2.6.10的安装与配置过程。主要内容包括:从官网下载安装包并解压、执行configure配置、编译安装、编辑数据库配置文件(需导入cosine.ldif和inetorgperson.ldif等schema)、启动服务、验证服务运行状态。接着详细说明了如何通过ldapadd命令依次添加组织、管理员、分组和用户条目到LDAP目录中,并给出了每个步骤对应的.ldif文件内容示例。最后提供了两个常用的LDAP客户端工具链接。

2025-08-19 23:09:43 1279

原创 redis集群模式 -扩缩容

本文介绍了Redis集群模式的扩容操作,重点讲解了如何将新主节点加入现有集群。主要内容包括:1)当前集群的主从关系说明;2)启动新节点6385、6386的过程;3)使用redis-cli工具检查集群状态;4)通过add-node命令将新主节点6385加入集群。文档还提供了相关技术文章的参考链接,涉及Redis集群搭建、分区算法等核心概念。适用于Redis 7.0.0版本,为管理员提供了集群扩容的实用指导。

2025-08-17 02:31:00 920

Java编码规范-阿里巴巴

Java编码规范-阿里巴巴

2017-04-05

GaussDB 200 6.5.1 软件安装 02.pdf

GaussDB 200 6.5.1 软件安装 02.pdf,华为GaussDB数据库安装教程。本文档介绍GaussDB 200的部署方案及软件安装的具体操作过程。本文档适用于安装工程师。

2019-11-15

空空如也

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

TA关注的人

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