redis笔记

news/2024/5/19 22:05:47/

string sds(简单动态字符串) sds内部又可以转为int ,embstr(连续,查一次内存),raw(查两次)
效率 防止数据溢出 空间预分配 惰性空间释放
hash ziplist (数据量小) hashtable
list ziplist (连续内存空间,访问效率高) quicklist(更新效率高) 双向循环链表
set intset(都是整型) hashtable
zset 有序的,自动去重的数据类型,底层是由字典dict和跳表skiplist(跳表)实现,数据较少时用ziplist来存储

事务 i/o多路复用 read/write 计算

rdb + aof copy and write
过期删除策略: 惰性过期 定期过期
内存淘汰策略 LRU(最近最少使用) LFU(最近最不经常使用)

redis集群 hash槽 (比一致性hash算法简单) go协议

缓存穿透:原因:大量key同一时间失效 没有值也保存redis 封禁对方ip 对参数进行校验 布隆过滤器
缓存雪崩:原因:短时间内访问大量不存在的key 过期时间随机设置 定时任务重新设置过期时间 永不过期(不推荐)
缓存击穿:原因:热点key突然失效 解决方法:加锁,当第一个请求到达之后加锁(分布式锁或者互锁),其他请求等待几毫秒,当第一个请求拿到数据之后就会把数据放到redis中,其他请求等待以后再请求redis就有数据了

如何解决数据不一致问题:1.加锁 2.先更新数据,在删除缓存,间隔一段时间再删除缓存 (延迟双删)

热key 本地缓存 大key unlink代替del异步线程删除

redis高并发修改值 分布式锁+到达时间顺序 zookeeper(不会,下一步学)


http://www.ppmy.cn/news/48566.html

相关文章

QT CTK控件 CTK开发(二)

CTK 为支持生物医学图像计算的公共开发包,其全称为 Common Toolkit。为医学成像提供一组统一的基本功能;促进代码和数据的交互及结合;避免重复开发;在工具包(医学成像)范围内不断扩展到新任务,而不会增加现有任务的负担;整合并适应成功的解决方案。 本专栏文章较为全面…

【华为OD机试真题】预定酒店(javaC++python)100%通过率

预定酒店 知识点排序 时间限制:1s空间限制:256MB限定语言:不限 题目描述: 放暑假了,小明决定到某旅游景点游玩,他在网上搜索到了各种价位的酒店(长度为 n的数组A),他的心理价位是x元,请帮他筛选出k个最接近x元的酒店(n>=k>0),并由低到高打印酒店的价格。 …

无线蓝牙耳机哪款音质好?目前音质最好的无线蓝牙耳机推荐

现如今,蓝牙耳机已经是一个非常实用且常见的数码产品了,不少人喜欢戴着蓝牙耳机听歌,玩游戏。一款音质好的蓝牙耳机不止能听个响,还能给人极致的听觉享受。在此,我来给大家分享几款目前音质最好的无线蓝牙耳机&#xf…

只要这5步,帮您和团队成功从手工测试转到自动化测试

目前有很多团队正在逐步从手工测试调整到自动化测试,只因自动化测试可以最大限度减少回归错误并且克服手工测试的问题。手工测试和自动化测试的区别在于谁来执行,人还是机器。对于手工测试。测试人员手工执行所有测试步骤,以便在应用程序发布…

大数据相关开源项目及组件汇总

前言 花了一点时间,整理了大数据相关开源项目、组件和官网地址。按照实际应用功能的不同,分为以下10个部分,并在目录图中进行归纳,后续章节的内容则是分别介绍各组件的背景及应用场景。 调度与管理服务 文件系统 数据搜集 消…

垃圾回收面试总结

堆空间的基本结构 Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时,Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收。 Java 堆是垃圾收集器管理的主要区域,因此也被称作 GC 堆(Garbage Collected Heap&am…

连接VPN后无法上网 Windows Route 轻松解决

连接VPN后无法上网 Windows Route 轻松解决 引言文档添加路由 引言 很多时候,我们公司的 VPN 为了不占用公司的外网带宽和安全起见,都会禁止访问外网。我们的电脑连接 VPN 后,所有的网络数据包都会走 VPN,从而导致我们无法访问互…

EIGRP配置邻居关系详解

1.2 EIGRP 邻居关系 1.2.1 实验目的 通过 EIGRP 邻居建立的相关实验,学习到如何调整 EIGRP 的 HELLO 和 HOLD 时间,使用 被动接口阻止不必要的邻居关系,认证 EIGRP 邻居,静态邻居的配置以及哪些参数影响 EIGRP 邻居建立。 1.2.…

java调用webservicer的方法

对于使用 Webservicer的方式,一般采用 Java API调用的方式。Webservicer是一个运行在浏览器中的客户端程序,它可以通过 Webservicer的接口来访问服务器上的服务。 使用 Java调用 Webservicer有两种方式: 下面是一个简单的例子: 2、…

three.js之摄像机

本节将在上一节的基础上进一步介绍一下摄像机功能。 three.js的摄像机主要包括两类:正交投影摄像机和透视投影摄像机。 透视投影摄像机:THREE.PerspectiveCamera,最自然的视图,距离摄像机越远,它们就会被渲染得越小。…

一只小蜜蜂

文章目录 一只小蜜蜂程序设计程序分析一只小蜜蜂 【问题描述】 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。 其中,蜂房的结构如下所示。 【输入形式】 输入数据的第一行是一个整数N,表示测试实例的个数,然后是…

【数据库多表操作】sql语句基础及进阶

常用数据库: 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它是长期存储在计算机内、有组织、有结构的数据集合。数据库是信息系统的核心部分,现代软件系统中大量采用了数据库管理系统(DBM…

Oracle EBS数据定义移植工具:FNDLOAD

在实际的EBS二次开发中,我们经常会碰到需要在各个环境之间移植二次开发的程序对象以及数据定义,如在EBS二次开发中并发请求的定义会涉及到: 可执行、并发程序、值集、请求组等的定义,定义需要从开发环境、测试环境、UAT环境一直到…

【微信小程序-原生开发】实用教程21 - 分包

分包的流程 当微信小程序主包大小超过2M时,则需要对微信小程序进行分包,方法如下: 1. 转移页面文件 在项目根目录下,新建文件夹 package1 (即自定义的分包名为 package1 )文件夹 package1 内新建文件夹 p…

差分运算放大电路原理解析

差分运算放大电路,对共模信号得到有效抑制,而只对差分信号进行放大,因而得到广泛的用。 注: (1)共模信号   共模信号(common mode signal)是指同时作用于多个电路或电子设备上的信…

列表、栈、队列

列表(List) 介绍 一系列有序元素的集合。列表中的元素可以是任意类型,允许重复。 可通过索引定位、访问列表中的(单个)元素,还可使用切片(slice)操作一次性访问多个元素&#xff…

深度解析OEKO

【深度解析OEKO】 什么是OEKO-TEX Standard 100? OEKO-TEX Standard 100现在是使用最为广泛的纺织品生态标志。OEKO-TEX Standard 100规定的标准是根据最新的科学知识,对纱线、纤维以及各类纺织品的有害物质含量规定限度。只有按照严格检测和检查程序提供…

浏览器输入URL会做哪些事情

1、浏览器输入URL后会检查缓存 检查资源是否在缓存中并且新鲜,如果有跳到转码步骤, 1.1 检查是否新鲜的方法: ---------HTTP1.0中提供的 Expires,储存的值是绝对时间表示缓存日期; ---------HTTP1.1中提供Cache-Contr…

MySQL运维27-MySQL复制的评估方法和注意事项

文章目录 1、概述2、MySQL复制的意义3、MySQL复制实施前的评估方法3.1、必要性的评估3.2、基础设施的评估3.3、对主库影响的评估 4、MySQL复制实施时的注意事项5、总结 1、概述 2、MySQL复制的意义 扩展读能力:从库的最重要意义在于扩展读能力,但不能扩…

操作系统原理 —— 什么是中断?(四)

我们先来看看早期的计算机的工作流程: 如上图,在早期的计算机假设有三个程序需要执行,执行顺序是:先执行程序1,等待程序1结束之后,再开始执行程序2,以此类推,所以它们是串行执行的…