当前位置: 首页 > news >正文 电商网站会员体制怎么做廉江网站建设 news 2025/11/1 0:52:06 电商网站会员体制怎么做,廉江网站建设,网址你懂我意思吧在线2021,做网站需要给设计提供文章目录 引言Redis是什么 正文对象String字符串面试重点 List面试考点 压缩列表ZipList面试题 Set面试题讲解 Hash面试重点 HASHTABLE底层面试考点 跳表面试重点 ZSET有序链表面试重点 总结 引言 在项目和redis之间#xff0c;我犹豫了一下#xff0c;觉得还是了解学习一下… 文章目录 引言Redis是什么 正文对象String字符串面试重点 List面试考点 压缩列表ZipList面试题 Set面试题讲解 Hash面试重点 HASHTABLE底层面试考点 跳表面试重点 ZSET有序链表面试重点 总结 引言 在项目和redis之间我犹豫了一下觉得还是了解学习一下redis毕竟这个不会项目哪里就缺了一块这里先整体过完一遍。 Redis是什么 核心 内存存储KV存储 解决什么问题 常用于缓存、消息中转、数据流引擎 Base理论 基本可用软状态最终一致性 正文 对象 常见的五个对象 String字符串List列表Set集合Hash哈希表Sorted Set有序集合 String字符串 对象编码的三种格式 INTEMBSTR:字符串长度比较小的时候有一个对象的头和对象的内容分配的时候在一块RAW字节头和内容是分开的适合存储大容量数据 是以阈值来进行判断是使用EMBSTR还是RAW保存 sdshdr简单动态字符串 1MB取一个最小值 面试重点 EMBSTR一次性分配空间 重新分配整体需要再分配所以EMBSTR是只读的任何写操作之后的EMBSTR都会变成RAW 主要是改过的都是易变的 set一个已有的数据会发生什么 同类型的话会覆盖键或者擦除数据 浮点型数据在string会用什么表示 将浮点数转换为字符串保存的值浮点数不是INT string可以有多大 Redis字符串最大是512MB Redis字符串是怎么实现的 INTEMBSTRRAW阈值是44 SDS有什么用 Redis是使用C语言写的1.SDS包含已使用容量字段0(1)时间快速返回有字符串长度相比之下C原生字符串需要O(n)。2.有预留空间在扩容时如果预留空间足够就不用再重新分配内存节约性能缩容时也可以将减少的空间先保留下来后续可以再使用。3.不再以’0’作为字符串结束判断标准二进制安全可以很方便地存储一些二进制数据。 List 异步删除 del命令会同步删除阻塞客户直到删除完成unlink异步删除命令只会取消key在键空间中的关联然后再删除 压缩链表ZipList 链表LiskedList 快表Quicklist 面试考点 怎么获得List指定范围内的数据 使用Lrange命令参数为start和stoplrange是从0开始的 删除特定的元素 LREM testlist key 1; 底层编码方式是什么样的 List对象的编码全部由QUICKLIST实现。QUICKLIST是一个压缩列表组成的双向链表结合了ZIPLIST和LINKEDLIST两者的优点 压缩列表ZipList 连锁更新因为数据和数据之间的耦合度太高了一个改变了另外一个也会改变这里使用ListPack改变这个问题 Listpack结局连锁更新 面试题 ZIPList有什么优点 节约内存访问满足局部性原则 执行效率更快 ZIPList怎么压缩数据的 结构头记录了字节数、开始位置、节点个数数据部分记录了上一个节点的长度内容编码内容本身结尾标志最后一个有1字节的结尾标识 ZIPList支持从后往前遍历吗 双端使用prelen上一个节点的长度进行遍历 ZIPList如何从前往后遍历 encoding包含了字符串或者整型的长度信息使用该信息从前向后遍历 连锁更新是什么问题 ZIPList是每一个节点都会记录上一个节点的长度如果上一个节点小于255字节这个记录字段就是1字节否则就是5字节由于更新某一个节点会导致长度变化如果从255以内变得超过了255会影响下一个节点的长度。 如何解决连锁更新 使用ListPack解决每一个节点是记录自身的长度并且上一个节点用来记录的字段和当前的节点是邻接的所以通过特殊字段向前遍历实现。 Set 编码模式 面试题讲解 set是有序的吗 set的底层实现是整数集和HASHTABLE前者是有序的后者是无序的 求两个set的交集 SINNER SETA SETB set的编码格式 Set使用整数集合和字典作为底层编码当元素都是整数同时元素个数不超过512个会使用整数集合编码否则使用字典编码 为什么使用两中编码原因 Set的底层编码是整数集合和字典当元素数量小并且全部是整数的时候会使用整数集合编码更加的节约内存。元素数量变大会使用字典编码查找元素的速度会更快。 Hash 底层实现原理 数据量小查询更快使用ZIPLIST数据量大使用HASHTABLE 面试重点 HASH的编码方式 ZIPLIST元素较小并且单个元素较少的情况HASHTABLE元素较多并且单个元素很多的情况 HASH为什么使用两种编码方式 采用两种编码方式的原因是ZIPLIST更节约内存所以在小数据量时使用。而数据多起来了需要HASHTABLE提高更高的查找性能、更新性能。 HASHTABLE底层 补充一个还有上面的HASH数据结构 具体代码 rehashidx表示当前表格是否再使用触发扩容之后这个状态就变为0 有针对字典的操作就会移动复制一次对应的元素 注意查找和新增的操作 查询是在零表增加是新表 渐进式扩容 有对于字典的请求就执行一次复制迁移复制一个key-value最后记得恢复最终的表格是h[0]指向迁移之后的元素 扩容和缩容的时间 负载因子为k那么kht[0].used/ht[0].size扩容: 1.负载因子大于等于1说明此时空间已经非常紧张。新数据是在链表上叠加的越来越多的数据如果此时服务器没有执行BGSAVE或者BGREWRITEAOF这两个复制命令就会发生扩容。2.负载因子大于5这时候说明HASHTABLE真的已经不堪重负了此时即使是有复制命令在进行也要进行Rehash扩容。 缩容: 1.当负载因子小于0.1即负载率小于10%此时进行缩容新表大小为第一个大于等于原表used的2次方幂缩容也受复制命令影响。 面试考点 查看HASHTABLE中所有元素数量的计算时间复杂度是多少 有一个used字段时间复杂度是O1 一个数据在HASHTABLE中的存储位置是怎么计算的 通过hash函数计算出key的哈希值然后与哈希掩码做与运算得到索引值索引值就是在HASHTABLE中的存储位置。 HASHTABLE如何扩容 渐进式Rehash操作来完成首先程序会为HASHTABLE的1号表分配空间空间大小是第一个大于等于0号表大小*2的2^n。在rehash进行期间标记位rehashidx从0开始每次对字典的键值对执行增删改查操作后都会将rehashidx位置的数据迁移到1号表然后将rehashidx加1随着字典操作的不断执行最终0号表的所有键值对都会被rehash到1号表上。之后1号表会被设置成0号表接着在1号表的位置创建一个新的空白表。 什么时候扩容什么时候缩容 扩容 当以下两个条件中的任意一个被满足时哈希表会自动开始扩容:服务器目前没有在执行BGSAVE或者BGREWRITEAOF并且负载因子1服务器目前正在执行BGSAVE或者BGREWRITEAOF并且负载因子5 缩容当哈希表的负载因子小于0.1时程序会自动开始对哈希表进行收缩操作。 跳表 和树的查询效率一样是logn 跳表查询数据的过程高级索引产生是随机的二级索引跳跃的距离较长一级索引短一点普通索引最短找35通过二级索引一次就行。找45通过二级索引找到35再找以及索引就找到45总结 超过目标值索引降级重新查找小于目标值继续使用高级索引 插入节点的方式 时间复杂度是logn Redis中的跳表设定 具体实现 层高是怎么确定的 面试重点 跳表是什么和普通的链表有什么区别 跳表也算链表不过相对普通链表增加了多级索引通过索引可以实现O(logN)的元素查找效率。 跳表的查找过程 从高级索引往后查找如果下个节点的数值比目标节点小则继续找否则不跳过去而是用下级索引往下找 调表查询节点总数的时间复杂度 O1表头结构中定义了统计节点数量的字段 跳表中一个结点的层高是怎么定义的 跳表在插入新节点之前会计算一个随机的层高具体来说跳表的每一个节点一开始默认都是1层然后每增加一层的概率都是 25%在5.0.5版本最高为64层 插入一条数据的时间复杂度 logN查找类似二分查找平均时间复杂度就是logN 跳表插入数据会影响其他节点的层高吗 不会的节点层高在创建时就确认的新插入的节点只会影响每一层的前一跳和后一跳的关联指针。 ZSET有序链表 重在于对文档敲一敲即使部队这文档也能够顺利使用 底层编码格式 底层编码的具体实现 跳表范围查找 HASHTABLE提供按成员查找分数的能力 面试重点 Zset如何添加元素如何移除元素 zadd和zrem实现 Zset如何从大到小查找范围 zrange从小到大查找zrevrange逆序查找 Zset底层编码的方式 ZSet就是有序集合对象ZSet对象的底层有两种编码方式:ziplist或者如果一个ZSet对象中的所有元素同时满足:元素数量小于128个 以及 所有元素成员的长度都小于64字节那么会使用ziplist编码否则使用 skiplist字典 编码。 Zset计算总的元素数的时间复杂度 无论是ZIPLIST编码还是SKIPLIST的编码查询节点总数的平均时间复杂度都是O(1)因为对应结构的表头结构中都定义了一个保存节点数量的字段查询节点总数时会直接返回这个字段。 Zset为什么要使用两种编码方式实现 hash使用单值查找跳表使用的是范围查询 Zset为什么不使用B树而是使用跳表 B树的数据都存在叶子节点中而且它是多叉树层这两个特点使得它适合磁盘存储。而Redis是一个内存数据库B树层高低的优势荡然无存所以选择了实现更加简单的跳表。而且跳表的插入性能更高虽然两者的插入平均时间复杂度相当但是跳表插入数据后只需要修改前进和后退指针即可而B树还需要维护树的平衡细节上有额外开销。 总结 这是redis的基础对象已经学完了后面的东西就是跳着学习了得加快进度了这个周末是要把redis差不多学习完的。 文章转载自: http://www.morning.grcfn.cn.gov.cn.grcfn.cn http://www.morning.hkpyp.cn.gov.cn.hkpyp.cn http://www.morning.jxgyg.cn.gov.cn.jxgyg.cn http://www.morning.cwzzr.cn.gov.cn.cwzzr.cn http://www.morning.lkhgq.cn.gov.cn.lkhgq.cn http://www.morning.xwrhk.cn.gov.cn.xwrhk.cn http://www.morning.mgskc.cn.gov.cn.mgskc.cn http://www.morning.wdhhz.cn.gov.cn.wdhhz.cn http://www.morning.tndxg.cn.gov.cn.tndxg.cn http://www.morning.kabaifu.com.gov.cn.kabaifu.com http://www.morning.ghfmd.cn.gov.cn.ghfmd.cn http://www.morning.wcqxj.cn.gov.cn.wcqxj.cn http://www.morning.kfldw.cn.gov.cn.kfldw.cn http://www.morning.xkgyh.cn.gov.cn.xkgyh.cn http://www.morning.mywmb.cn.gov.cn.mywmb.cn http://www.morning.jsdntd.com.gov.cn.jsdntd.com http://www.morning.dqrpz.cn.gov.cn.dqrpz.cn http://www.morning.rrxgx.cn.gov.cn.rrxgx.cn http://www.morning.xmttd.cn.gov.cn.xmttd.cn http://www.morning.swimstaracademy.cn.gov.cn.swimstaracademy.cn http://www.morning.ydzly.cn.gov.cn.ydzly.cn http://www.morning.syfty.cn.gov.cn.syfty.cn http://www.morning.ggnrt.cn.gov.cn.ggnrt.cn http://www.morning.wxccm.cn.gov.cn.wxccm.cn http://www.morning.webife.com.gov.cn.webife.com http://www.morning.ccsdx.cn.gov.cn.ccsdx.cn http://www.morning.hpnhl.cn.gov.cn.hpnhl.cn http://www.morning.qnftc.cn.gov.cn.qnftc.cn http://www.morning.tcxk.cn.gov.cn.tcxk.cn http://www.morning.nkqrq.cn.gov.cn.nkqrq.cn http://www.morning.nnttr.cn.gov.cn.nnttr.cn http://www.morning.txnqh.cn.gov.cn.txnqh.cn http://www.morning.bnfrj.cn.gov.cn.bnfrj.cn http://www.morning.ggnfy.cn.gov.cn.ggnfy.cn http://www.morning.gxqpm.cn.gov.cn.gxqpm.cn http://www.morning.rnnts.cn.gov.cn.rnnts.cn http://www.morning.kbkcl.cn.gov.cn.kbkcl.cn http://www.morning.srsln.cn.gov.cn.srsln.cn http://www.morning.cjcry.cn.gov.cn.cjcry.cn http://www.morning.nrll.cn.gov.cn.nrll.cn http://www.morning.dmlgq.cn.gov.cn.dmlgq.cn http://www.morning.klwxh.cn.gov.cn.klwxh.cn http://www.morning.hlnrj.cn.gov.cn.hlnrj.cn http://www.morning.flchj.cn.gov.cn.flchj.cn http://www.morning.bphqd.cn.gov.cn.bphqd.cn http://www.morning.ctsjq.cn.gov.cn.ctsjq.cn http://www.morning.cnlmp.cn.gov.cn.cnlmp.cn http://www.morning.bhwll.cn.gov.cn.bhwll.cn http://www.morning.drfrm.cn.gov.cn.drfrm.cn http://www.morning.zyslyq.cn.gov.cn.zyslyq.cn http://www.morning.qrsm.cn.gov.cn.qrsm.cn http://www.morning.qbkw.cn.gov.cn.qbkw.cn http://www.morning.kjtdy.cn.gov.cn.kjtdy.cn http://www.morning.pmmrb.cn.gov.cn.pmmrb.cn http://www.morning.wkwds.cn.gov.cn.wkwds.cn http://www.morning.caswellintl.com.gov.cn.caswellintl.com http://www.morning.nfpkx.cn.gov.cn.nfpkx.cn http://www.morning.wmqxt.cn.gov.cn.wmqxt.cn http://www.morning.wcghr.cn.gov.cn.wcghr.cn http://www.morning.kmqwp.cn.gov.cn.kmqwp.cn http://www.morning.jntdf.cn.gov.cn.jntdf.cn http://www.morning.hhfqk.cn.gov.cn.hhfqk.cn http://www.morning.jtmrx.cn.gov.cn.jtmrx.cn http://www.morning.rtzd.cn.gov.cn.rtzd.cn http://www.morning.qrgfw.cn.gov.cn.qrgfw.cn http://www.morning.qztsq.cn.gov.cn.qztsq.cn http://www.morning.spwm.cn.gov.cn.spwm.cn http://www.morning.mzpd.cn.gov.cn.mzpd.cn http://www.morning.gfqjf.cn.gov.cn.gfqjf.cn http://www.morning.ysmw.cn.gov.cn.ysmw.cn http://www.morning.srkzd.cn.gov.cn.srkzd.cn http://www.morning.dbjyb.cn.gov.cn.dbjyb.cn http://www.morning.rlsd.cn.gov.cn.rlsd.cn http://www.morning.qtxwb.cn.gov.cn.qtxwb.cn http://www.morning.kwnbd.cn.gov.cn.kwnbd.cn http://www.morning.dbfwq.cn.gov.cn.dbfwq.cn http://www.morning.xdttq.cn.gov.cn.xdttq.cn http://www.morning.fmkbk.cn.gov.cn.fmkbk.cn http://www.morning.rtzd.cn.gov.cn.rtzd.cn http://www.morning.brmbm.cn.gov.cn.brmbm.cn 查看全文 http://www.tj-hxxt.cn/news/266644.html 相关文章: 网站开发研发工程师岗位职责大数据营销系统多少钱 wordpress腾讯视频播放器关键词优化怎么优化 弹幕网站制作免费咨询法律问题找哪里 网站备案查询工信部app京推推cms网站建设 做网站什么是三网合一seo优化要做什么 做全网vip电影网站违法吗如何做网站购物车 怎么修改网站的域名新能源电动汽车哪个牌子的质量好 一个人做网站 知乎提供手机自适应网站建设 泗阳县建设局网站怎样建设个人网站广告赚钱 网站开发注意湖州网站建设湖州网站建设 昆明做网站建设价位wordpress 标题icon 北京行业网站建设家在坪山业主论坛家在深圳 网站做几级等保烟台网站优化推广 小企业网站免费建设自助建网站哪个便宜 如何完整建设一个网站天津电商网站建设 ext做的网站有那些什么叫营销型网站 吉首自治州住房和城乡建设局网站什么叫网站建设方案书 食品贸易网站建设案例中国建设协会八大员 佛山网站建设模板银行网站开发 湖州建设局投标网站哪个网站能叫我做直播回放 长沙招聘网站信息图制作网站 山东嘉邦家居用品公司网站 加盟做经销商多少钱 有人做过吗宜城网站建设网络推广 成都家具网站建设电子商务网站运营 需要确立 做网站的软件名字全拼哪里可以做网站优化 gta5网站正在建设中凡科互动游戏怎么破解 茂名网站制作计划兰州高端网站 品牌型网站建设解决方案银川森林半岛 企业内部网站制作百度网址链接收录提交入口 棠下网站建设厦门城乡建设局网站 温州公司网站建设连锁店装修