第四周后端常用技术总结
缓存技术:
缓存无处不在,避免资源重复请求的消耗,达到快速响应的目的,同时减轻数据库访问的压力。
redis缓存利用内存的读写性能运高于磁盘的读写性能的天然优势,必要时保证缓存数据的持久化,防止数据丢失,支持批处理命令及管道机制,多种数据类型支持,高可用高性能的集群化方案,支持简单的发布订阅模式的消息,6.0版本支持多线程以及诸多新特性,这些优势也使它成为最流行的缓存方案。
如何根据场景选择合适的数据类型以及如何管理它的生命周期成为使用缓存的关键。
数据类型总结:
redis作为key-value类型缓存的代表方案,缓存键作为缓存的标志,缓存值的类型支持以下类型:
1.string类型根据值的内容长度选择合适的编码方案减少存储占用。
2.hash支持hash key,hash value,更方便对对象属性的操作。
3.list有序列表用于多元素,支持双端队列阻塞式操作。
4.set集合,位图是比较特殊的类型,存储二进制数组,可用于boolean类型的数据统计存储,数组索引表示某个数据的唯一标志
5.zset排序集合可对多个元素可指定分数作为排序依据。
6.geo地理信息方便基于定位搜索附近的坐标城市,hyperloglog用于大量数据的基数统计。
常见缓存问题:
对于过期的缓存数据,存在自动回收算法的线程进行处理,也可手动更新缓存。
1.缓存穿透,缓存较短过期时间的空值,数据更新时同步缓存,使用不拢
2.缓存雪崩,使用随机过期时间,防止数据同时失效,集群方案冗余存储
3.热点key,检查热点数据,提前预热。
4.无底洞问题,分析缓存的数据类型,占用空间,执行耗时,并进行优化充分发挥缓存优势
数据库技术:
读写分离分散访问压力,必要时使用分布式数据库中间件,根据业务进行垂直分片,然后进行水平分片,可以使用sharding-jdbc中间件,核心特性包含数据分片,分布式事务,数据脱敏,影子库压测,可拔插的插件。
评论