摘要: 前言 使用redis作为缓存,必然存在redis缓存和DB数据一致性的问题:某一时刻,redis缓存数据和DB数据不一致 一 缓存更新策略 按照缓存更新的方式大致分为: 内存淘汰、过期删除、主动更新 一) 内存淘汰 利用Redis的内存淘汰策略,当内存不足时自动进行淘汰部分数据,下次查询时更新缓存, 阅读全文
posted @ 2023-03-12 19:05 junffzhou 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 一 数据一致性简介 1 产生数据一致性的原因 分布式系统中,存在多个服务节点,每份数据都有多份副本,每份副本对应一个服务节点 如果网络、服务器或者软件出现故障,会导致部分节点写入成功,部分节点写入失败,最终导致各个节点之间的数据不一致 2 数据一致性的定义和分类 数据一致性是指任一时刻,所有副本中的 阅读全文
posted @ 2023-03-12 18:57 junffzhou 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 前言 redis是基于内存的,如果内存超过限定值(redis配置文件的maxmemory参数决定redis最大内存使用量),导致新的数据存不进去,此时redis会根据淘汰策略删除一些数据 一 内存淘汰策略 淘汰策略由redis配置文件的maxmemory-policy参数决定设置,默认为no-evi 阅读全文
posted @ 2023-03-12 18:56 junffzhou 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 一、TCP协议介绍 TCP(Transmission Control Protocol, 传输控制协议/网际协议),也叫网络通讯协议,是指能够在多个不同网络间实现信息传输的协议簇。 TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议 阅读全文
posted @ 2022-12-18 17:03 junffzhou 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 简单动态字符串(simple dynamic string,SDS) redis使用C语言编写的,但是redis的字符串却不是C语言中的字符串(以空字符'\0'结尾的字符数组),redis定义了一种简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS作为redi 阅读全文
posted @ 2022-12-17 18:04 junffzhou 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 双向链表(linkedlist) redis的双向链表(linkedlist)是基于链表的一种数据结构 链表是一种常见的基础数据结构,是一种非顺序存储数据的线性表,在每一个节点里存储了下一个节点的指针 链表充分利用内存实现灵活的内存动态管理,但是失去了数组随机读取的优点,同时链表由于增加了结点的指针 阅读全文
posted @ 2022-12-17 18:03 junffzhou 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 压缩列表(ziplist) 压缩列表(ziplist)是redis 为了节约内存而开发的,由连续内存块组成的顺序型数据结构,适用于长度较小的值 存取的效率高,内存占用小,但由于内存是连续的,在修改的时候要重新分配内存 同时满足以下两个条件时,使用ziplist: 1) 元素长度都小于64Byte 2 阅读全文
posted @ 2022-12-17 18:03 junffzhou 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 快速列表(quicklist) redis3 .2版本之前,List类型数据使用的底层数据结构是压缩列表(ziplist)或双向链表(linkedlist),当列表元素个数比较少并且每个元素占用空间比较小时使用压缩列表;当列表元素个数比较多或者某个元素占用空间比较大的时使用双向链表 redis3 . 阅读全文
posted @ 2022-12-17 18:03 junffzhou 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 字典(dict) 字典又称为符号表或者关联数组、或映射(map),是一种用于保存键值对(key-value)的抽象数据结构 字典中的每个key都是唯一的,通过key对值来进行查找或修改,时间复杂度为 O(1) redis的底层数据结构字典又使用了哈希表,一个哈希表包含多个哈希表节点,每个哈希表节点保 阅读全文
posted @ 2022-12-17 18:03 junffzhou 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 跳表(跳跃表, skiplist) 跳跃表(skiplist)是用于有序元素序列快速搜索查找的数据结构,跳表是一个随机化的数据结构,实质是一种可以进行二分查找的、具有层次结构的有序链表 跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找,平均期望的查找、插入、删除时间复杂度都是O(log 阅读全文
posted @ 2022-12-17 18:03 junffzhou 阅读(313) 评论(0) 推荐(0) 编辑