- 博客(100)
- 收藏
- 关注
原创 redis
redis命令stringset key value:设置键值对get key:取数据del key:删除数据exists key:键是否存在,0不存在,1存在keys *:查看所有键,keys *mm查看所有以mm结尾的键flushall:删除所有键ttl key:查看键还有多久过期expire key 时间:设置键的过期时间(秒)setex key 时间 value:设置一个有过期时间的键值对10.setnx key value:不存在时设置,存在时无操作listlpu
2024-04-10 16:59:34
199
原创 登录认证(jwt)
cookie:服务器发送到客户端(通常是浏览器)的小段数据,客户端会将其保存起来,并在每次请求时附上这段数据,将其发送回服务器。session:服务器会为每个用户创建一个唯一的会话 ID,并将其存储在服务端。同时,服务器会将这个会话 ID 发送给客户端(通常是通过 Cookie),客户端在后续的请求中会携带这个会话 ID。服务器通过会话 ID 来识别用户,并获取用户的会话信息。token:是一种身份令牌。Token 通常由服务器在身份验证成功后生成,并发送给客户端。客户端在后续的请求中会携带这个Tok
2024-04-09 22:27:05
333
原创 MySQL数据库
systemctl是Linux系统中的一个命令行工具,用于控制systemd系统和服务管理器。启动服务:systemctl start 服务名停止服务:systemctl stop 服务名重启服务:systemctl restart 服务名等等ubuntu安装mysql:sudo apt install mysql-server查看mysql服务状态:systemctl status mysql启动mysql服务:sudo systemctl start mysql查看默认用户:sud
2024-03-10 17:21:26
759
原创 following和follower双表冗余设计
单表多索引”方案在数据量不大时是完全可行的,但为什么在构建像微博、抖音这类亿级用户的社交系统时,业界普遍会选择这种看似冗余的双表设计呢?核心原因在于,当数据量巨大到必须进行时,这两种方案的差异就会变得天差地别。下面这个表格清晰地对比了它们的关键区别。
2026-01-22 17:24:00
615
原创 用户登录日志表和系统日志
您提出了一个很好的问题,这涉及到系统设计中关于日志记录的层次和目的的核心考量。这主要是因为系统日志和应用级别的登录日志服务于不同层面、不同目的的对象。下面这个表格可以清晰地展示它们的核心区别。
2025-12-30 14:59:02
518
原创 数据库主键自增id和唯一业务id(雪花算法)
简单来说,id和zg_idid(自增主键):像是公司在内部管理系统为每位员工分配的工号。它唯一、稳定、不对外公开,是HR、财务等部门进行内部管理的基石。zg_id(业务唯一ID):像是员工对外的工作邮箱地址。它唯一、可读(通常是姓名缩写)、可以根据需要申请或变更,是员工与外界沟通的“业务名片”。因此,在您的用户表设计中,idBIGINT 作为内部关联和索引的性能基石,而zg_idVARCHAR 则作为面向业务和用户的唯一标识,两者相辅相成,共同构建了一个既高效又灵活的数据库模型。
2025-12-30 14:32:34
455
原创 maven
maven的功能:依赖管理;项目构建。依赖管理:java项目需要各种包,包又依赖其它包,有些版本的包又不兼容,手动管理太麻烦。只需在pom.xml文件中表明需要哪些包,maven就会自动下载包和这些包依赖的包。项目构建:java需要将源文件编译为.class的字节码文件,再把所有字节码文件打包成一个可执行的jar包。如果没有maven,手动管理非常麻烦且容易出错。mvn是maven的命令。maven坐标是一个项目唯一标识,由公司,项目,版本号组成。一个工程可能会有很多个依赖。
2025-09-09 16:59:00
229
原创 第一个项目java
资料:https://pan.baidu.com/s/18gU7FbbHdv9vRLnPIywl2g?pwd=yyds 提取码:yyds。
2025-08-24 21:22:41
189
原创 数据库事务、spring事务、分布式事务
对于绝大多数单数据源的企业应用,Spring的声明式事务()是你的首选。它简单、高效,并能很好地处理事务。当业务操作必须同时修改多个(微)服务的数据时,才需要考虑引入分布式事务解决方案。并需要根据业务场景(是否允许短暂不一致、对性能要求多高)来选择是追求强一致性(如XA)还是最终一致性(如TCC、消息队列)。设计上应保持谨慎。分布式事务会引入显著的复杂性,在架构设计初期,应尽量通过“数据库拆分但业务合并”、“避免跨服务更新同一资源”等方式来规避分布式事务的产生。
2025-07-06 23:28:27
242
原创 golang接口
go语言不会显示地声明实现了哪个接口,只要类实现了接口的所有方法,就隐式地实现了这个接口。由于Go的接口是隐式实现的,所以无法明显知道某个结构体是否实现了接口的所以方法。
2025-03-03 21:45:24
313
原创 go类型转换和断言
在 Go 语言中,接口隐式转换是指当一个具体类型(如结构体)实现了某个接口(或父类)的所有方法时,该类型的实例(值或指针)可以直接赋值给接口类型的变量,无需显式类型转换。
2025-02-28 16:53:47
338
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1