【php相关总结】

php相关总结

一、分库分表

垂直拆分和水平拆分
垂直拆分:
1.大表拆小表,常用的字段单独拆分出来,直接访问小表
2.每个库表不一样,但是有一个相同的外键关联
水平拆分:
1.hash取模拆分。
2.每个库表结构都一样,结果不一样
3.单表数据减少,有利性能
4.缺点:扩容难度大,可采用一致性hash算法
一致性hash算法:
1.所有的服务器节点,数据放在一个环中
2.创建真实节点和虚拟节点
中间件:
jdbc直连:shardingsphere
proxy代理:mycat,优点–>可以跨语言

二、redis数据类型
1.string:int,embstr(小于等于44字节),raw(大于44字节)
2.hash:底层是一个dict,数据量小或值小时会采用ziplist,反之是hashtable
3.list:有序的数据结构,分类ziplist和quicklist
4.set:无序的集合,自动去重
5.zset:有序的集合,自动去重
redis cluster模式
hash槽算法
crc16(key)%16384
缓存问题–>、、击穿
穿透:如id<0等不存在的数据
解决方法: (布隆过滤器)
雪崩:redis里面大量的key集体失效–>大量请求到mysql里面去了
解决方案:1.过期时间随机设置 2.定时任务重新设置过期时间 3.永不过期
击穿:热点key突然失效–>大量请求到mysql里面去了
解决方法:1.加锁–分布式锁或互斥锁
三、mysql和redis一致性
1.延迟双删
2.第二次删除失败,可以放在队列中循环删除
四、redis分布式锁
1.利用携带时间戳,同一时间只让一个服务运行
2.zookeeper
五.面向对象
1.类:封装,继承,多态
2.魔术方法:__construct,__destruct,__call,__get,__set,__clone,__isset,__unset,__sleep等
3.设计模式:常见的工厂模式,单例模式,注册树模式,适配器模式,观察者模式,策略模式

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值