logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

redis底层数据结构-List

列表对象有两种底层实现结构压缩列表(zipList)实现的列表对象压缩列表(zipList)是Redis为了节省内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构,一个压缩列表可以包含任意多个节点(entry),每个节点可以保存一个字节数组或者一个整数值,如图压缩列表的每个节点Entry构成如下previous_entry_ength:以字节为单位,记录了压缩列表中前一个字节的长度。

#数据结构#redis#list
设计模式OO原则

设计原则和设计模式原则是在模式之下,比模式更抽象(模式是解决方案层面上),原则是一种指导思想,更难理解。SOLD原则1、单一原则一个类只有一个引起变化的原因;职责-设计类时,关注职责;如果多于一个动机去改变这个类,那就不是单一职责。克制一个类中写多个职责软件设计更多关注的是职责和相互分离2、开闭原则ocp功能对修改关闭,多扩展开放原则实现途径:策略模式(横向扩展)、模板模式(纵向扩展)、桥接模式关

#策略模式
系统调优几个维度考虑

前端:1、CDN前后分离:开发模式动静分离:动态资源和静态资源分开存储缺陷:更新需要刷新缓存后端:1、jvm调优,需要对jvm参数调优,减少gc,和STW次数;选择合适的垃圾回收器2、使用redis缓存,减少db压力;数据一致性,雪崩、击穿、穿透3、数据库定位慢sql索引优化、最左匹配原则、分库分表、4、MQ,利用mq削峰避免消息堆积,消费者批量消费+集群;整合K8S,当流量非常大的时候,快速扩容

#java#数据库
redis底层数据结构 -String

redis包含5种常用数据结构String 、List、Hash、Set 、ZsetString字符串不同的外在形式以set为例redis其实可以理解为 K-V数据库,因此对每个键值对都会有一个 dictEntry,里面存储了指向 Key 和 Value 的指针;next 指向下一个 dictEntry,与本 Key-Value 无关key可以看出 key不是直接存的字符串,而是一个SDS结构va

#redis#数据结构
到底了