因为是golang开发 刷一下我会的
认证确认用户是谁的过程,验证用户的身份。例如用户名密码登录、手机验证码等。
鉴权确定用户能做什么的过程,验证用户是否有权限执行特定操作。例如普通用户不能访问管理员页面。
集群相对于单机的不同点:易于扩展,高性能,高可用性,但是需要额外维护成本
集群数据同步方式:主从同步,增量同步,全量同步,异步复制
同步的时候有一个replication buffer缓冲区,会写入同步期间新增的数据,同步完rdb之后再同步这个命令,然后重放一次
集群数据丢失及解决方案: 集群模式可能丢失数据,主要原因是异步复制。解决方法:开启持久化(RDB/AOF) 调整min-slaves-to-write和min-slaves-max-lag参数(拒绝写入
RDB和AOF选择:
* RDB:适合数据备份,恢复速度快,对性能影响小,但可能丢失最后一次快照后的数据
* AOF:数据安全性高,支持秒级持久化,但文件较大,恢复速度慢
* 建议同时使用:RDB做冷备,AOF做热备,利用各自优势
缓存穿透空值法内存占用问题:
1. 空值设置较短的TTL
2. 布隆过滤器
3. 后台任务定期检查和清理空值
Redisson相比setnx的灵活性:
1. 同一线程可多次获取锁
2. 自动续期
3. 锁超时
4. 分布式支持
延迟双删MySQL操作失败 不是很懂,这个失败了数据仍然是一致的吧,只是会有缓存击穿分险,正常报错响应客户端应该就ok