📄🦌🙌🐟🏖️
日志记录
Where there is a where there is a way
随机文章
按住 Shift 横向滚动
热门文章
按住 Shift 横向滚动
Redis实现短信登录(Session共享)

Redis实现短信登录(Session共享)

本文介绍了基于Session和Redis的登录功能实现。首先,通过Session存储验证码和用户信息,实现短信验证码发送、验证码登录及登录拦截器(保存用户到ThreadLocal)。但Session在集群环境下存在共享问题。为解决此问题,改用Redis:将验证码存入Redis并设置2分钟过期,登录后生成随机token,将用户信息以Hash形式存入Redis并设置30分钟有效期,拦截器从请求头获取token并校验,同时刷新有效期。Redis方案实现了分布式环境下的登录状态共享,提升了系统的可扩展性。

Redis的Java客户端

Redis的Java客户端

本文介绍了Redis的Java客户端,包括Jedis和SpringDataRedis。Jedis部分涵盖快速入门(引入依赖、建立连接、操作String、释放资源)及连接池的使用,以提升性能和安全性。SpringDataRedis是Spring整合Redis的模块,提供RedisTemplate统一API,支持Lettuce和Jedis,并支持多种序列化方式。文章详述了SpringDataRedis的快速入门步骤(依赖、配置、注入、测试),以及自定义序列化(设置Key为StringRedisSerializer,Value为GenericJackson2JsonRedisSerializer)和手动序列化(使用StringRedisTemplate配合ObjectMapper)。最后展示了操作Hash类型的方法,如put、putAll、get、keys、values、entries。

Redis基础

Redis基础

NoSQL(非关系型数据库)用于解决传统关系型数据库在大数据、高并发等场景下的局限,具有灵活数据模型、高扩展性、高性能等特点,常见类型包括键值存储(如Redis)、文档数据库(如MongoDB)、列族存储(如Cassandra)和图数据库(如Neo4j)。Redis作为基于内存的键值型NoSQL数据库,支持多种数据结构(String、Hash、List、Set、SortedSet等),具备高读写性能、事务支持、持久化(RDB/AOF)、主从复制及集群能力,广泛用于缓存、排行榜、实时分析、消息队列等场景。Redis通用命令包括KEYS、DEL、EXISTS、EXPIRE、TTL等,常用数据类型各具特色:String适合计数器,Hash存储对象,List实现队列,Set处理唯一集合,SortedSet用于排序与范围查询。

Docker一键部署脚本

Docker一键部署脚本

本文提供了使用 Docker 一键部署 MySQL、Redis、ELK、Kafka、GitLab 及镜像仓库的完整方案。每个服务均包含详细的配置文件(如 MySQL 的 my.cnf、Redis 的 redis.conf、Kafka 的 server.properties 等)和对应的启动命令(docker run 或 docker-compose up -d)。部署前需创建宿主机的数据、日志、配置目录并设置正确权限(如 chown 999:999 或 1000:1000)。关键配置包括:MySQL 开启远程连接、设置字符集与 InnoDB 优化;Redis 关闭保护模式、配置持久化(RDB+AOF);ELK 采用 7.12.1 版本,通过 docker-compose 管理 Elasticsearch、Kibana、Logstash;Kafka 配合 Zookeeper 并暴露内外双监听地址;GitLab 与镜像仓库也均通过 docker-compose 挂载数据卷并指定网络。各服务均加入外部网络 tool-net 实现互通。

MyCat配置读写分离

MyCat配置读写分离

读写分离通过将数据库的读操作和写操作分离到不同的服务器,可有效减轻单台数据库压力。MyCat中间件能轻松实现此功能,支持MySQL、Oracle和SQL Server。一主一从模式下,主库负责写,从库负责读,但主库宕机后业务只能读不能写。双主双从架构则通过两台主库互为主备,各带一台从库,实现高可用:一台主库负责写,其余节点分担读,主库故障时自动切换。配置时需在MyCat的schema.xml中通过balance属性控制读写分离和负载均衡,balance=1适用于双主双从,使所有从库和备用主库参与读负载;writeType=0将写操作固定到第一台主库;switchType=1实现自动切换。此外,MyCat支持分库分表与主从复制结合,未配置的逻辑表会自动映射为物理表,仅做代理转发。

MyCat配置分库分表

MyCat配置分库分表

本文介绍了数据库分库分表的背景与拆分策略:为解决单数据库的IO和CPU瓶颈,采用垂直拆分(按业务或字段拆分结构)和水平拆分(按数据分散存储)。实现技术包括ShardingJDBC(应用层拦截SQL,性能高)和MyCat(数据库中间件,无需改代码)。重点讲解了MyCat的安装配置(schema.xml、rule.xml、server.xml)、核心概念(逻辑库、逻辑表、分片节点)、多种分片规则(范围、取模、一致性哈希、枚举、按天/月等),以及管理工具(9066端口)和监控平台MyCat-eye的部署与使用。通过MyCat可实现透明化分库分表,降低数据量压力,提升数据库性能。

MySQL配置主从复制

MySQL配置主从复制

本文介绍了MySQL主从复制的概念、原理及搭建方法。主从复制通过将主库的DDL和DML操作写入二进制日志(BinLog),由从库读取并写入中继日志(Relay Log),最后重做日志以保持数据同步。支持一主多从及链状复制。搭建步骤:主库需设置唯一server-id、创建远程复制账号并赋予权限,查看二进制日志坐标;从库配置唯一server-id后,通过`CHANGE REPLICATION SOURCE TO`语句指定主库信息并启动同步,最后验证状态。整个过程确保从库数据与主库一致,是MySQL高可用和读写分离的基础。

MySQL常见日志

MySQL常见日志

MySQL 的错误日志、二进制日志和查询日志是数据库管理的重要工具。错误日志记录运行中的错误、警告及关键事件(如启动失败、InnoDB死锁),通过 `log_error` 配置路径,支持日志轮转。二进制日志(binlog)记录所有数据变更,支持 STATEMENT、ROW、MIXED 格式,用于主从复制和时间点恢复,可通过 `mysqlbinlog` 工具查看和重放。查询日志捕获所有客户端请求(包括 SELECT),用于审计和调试,默认关闭,可通过 `general_log` 启用,输出到文件或系统表。三者的管理均支持动态配置和日志轮转(如 `FLUSH LOGS`),是保障数据库稳定、实现灾难恢复和性能分析的关键。

Mysql客户端常用工具指令

Mysql客户端常用工具指令

MySQL提供多个命令行工具用于数据库管理和维护: - **mysql**:客户端工具,用于连接服务器并执行SQL语句、管理数据。 - **mysqladmin**:管理工具,可监控状态、创建/删除数据库、关闭服务等。 - **mysqlbinlog**:解析二进制日志,用于数据恢复、复制分析及按时间或位置过滤查看。 - **mysqlshow**:快速查看数据库、表、列的结构信息(类似SHOW命令,无需进入交互界面)。 - **mysqldump**:逻辑备份工具,导出数据库/表为SQL文件(支持全库、结构、条件备份)。 - **mysqlimport**:批量导入文本文件(如CSV)到指定表,要求文件名与表名一致。 - **source**:MySQL客户端内部命令,用于执行外部SQL文件(如恢复备份、运行脚本)。 这些工具覆盖了连接、查询、管理、备份、恢复、数据导入等核心任务,是MySQL日常运维的重要组件。

Mysql系统数据库

Mysql系统数据库

MySQL系统数据库包括四个主要部分:`information_schema`提供只读的元数据视图(如表结构、列信息);`mysql`存储用户权限、事件等核心配置,需通过`GRANT`/`REVOKE`管理;`performance_schema`用于性能监控(如SQL耗时、锁竞争),默认部分关闭;`sys`基于前两者提供易读的视图和诊断工具(如锁等待分析),适合快速定位瓶颈。此外,NDB集群特有`ndbinfo`库。注意事项:禁止直接修改系统表;备份`mysql`库需谨慎;版本差异(如`sys`在5.7+才存在)。这些库共同支持数据库结构查询、权限管理、性能调优等操作。

© 2026 日志记录