当前位置: 首页 > news >正文

一文总结Redis知识点

目录

  • 为什么基于MySQL又出现Redis?Redis的优点?
  • Redis支持的基本命令
  • Redis支持的数据结构
    • 1 String
    • 2 List
    • 3 Set
    • 4 Sorted Set
    • 5 Hash
    • 6 Stream 消息队列
    • 7 Geospatial 地理空间
    • 8 Bitmap 位图
    • 9 Bitfield 位域
    • 10 HyperLogLog
  • Redis是单线程还是多线程?
  • 发布订阅模式
  • Redis中的事务与关系型数据库中的事务的区别?
  • 持久化的两种方式RDB和AOF有什么区别?用哪个更好?
    • RDB快照(Redis Database)
    • AOF日志(Append-Only File)
  • 主从复制
  • Sentinel 哨兵模式
  • Redis集群
    • 集群中如何进行数据分区?
      • 节点取余分区
      • 一致性哈希分区
      • 虚拟槽分区
      • 集群的伸缩?
  • 如何保证缓存数据和数据库数据的一致?
  • 如何保证本地缓存和分布式缓存的一致?
  • 如何处理热key和大key?
  • Redis的管道?

为什么基于MySQL又出现Redis?Redis的优点?

  • MySQL是基于磁盘IO的,Redis是基于内存的。
    内存的读写速度比磁盘IO的读写速度快很多,可以大大提高性能。

  • 优点:基于内存所以性能高,支持的数据类型很丰富,支持所有主流的编程语言如python Java等,支持数据持久化(ROB AOF机制),支持主从复制,支持集群模式,支持哨兵模式。

  • Redis是key-value形式的非关系型数据库

Redis支持的基本命令

  • SET 添加键值对
  • GET 获取键值对
  • EXISTS 查询键值对
  • DEL 删除键值对
  • FLUSHALL 删除所有键
  • KEYS * 查询所有键
  • TTL 查看键过期时间
  • EXPIRE 设置键的过期时间

Redis支持的数据结构

1 String

  • Redis默认用String进行存储
  • String所有的命令都与基本命令一致

2 List

  • 底层数据结构是双端队列
  • 命令以L开头
  • 独有命令:LPUSH(左边入队)LPOP(左边出队)LRANGE(从左边输出队列)LLEN(队列长度)LTRIM(从左边数保留队列的部分元素)RPUSH(右边入队)…

3 Set

  • 无序去重集合
  • 命令以S开头
  • 独有命令:SADD(添加元素)SREM(删除元素)SISMEMBER(查询元素)
  • 支持集合运算,交集并集等

4 Sorted Set

  • 有序去重集合
  • 命令以Z开头
  • Zset中的每个元素都会关联一个浮点类型的分数,然后根据分数从小到大排序元素
  • Zset中的元素是唯一的,但元素的分数可以是重复的
  • 独有命令:ZRANGE key 0 -1 WITHSCORES(输出所有成员+分数)ZRANK(查看成员从小到大的排名)

5 Hash

  • 命令以H开头
  • Redis本身就是键值对,相当于键值对中的value又是键值对

6 Stream 消息队列

  • 命令以X开头
  • 独有命令:XREAD COUNT count BLOCK ms STREAMS key 0(从头一次从队列中读count条消息,如果没有消息就阻塞多少ms,可以重复读取。把0改成#可以读最新消息)XGROUP(创建消费者组和创建消费者)XINFO(查看消费者组的信息)

7 Geospatial 地理空间

  • Redis3.2版本的新特性
  • 一种专门用来存储地理位置信息的数据结构
  • 命令以GEO开头
  • 支持地理位置的计算操作
  • 独有命令:GEOPOS(查找城市经纬度)DEODIST(计算城市直线距离)GEOSEARCH(查询以某城市为中心,在某范围内的城市)

8 Bitmap 位图

  • 一个01数组,下标表示偏移量
  • 命令以BIT开头
  • 支持位运算
  • 适用场景:记录用户签到情况,在线状态,是否点赞

9 Bitfield 位域

  • 命令以BITFIELD开头
  • 适用场景:记录游戏玩家信息

10 HyperLogLog

  • 一种做基数统计的算法,即计算集合中的不重复元素个数
  • 命令以PF开头
  • 原理:随机算法
  • 优点:占用内存小
  • 缺点:有误差
  • 适用场景:对精确度要求不高,但数据量很大的统计工作,如统计某词的搜索次数

Redis是单线程还是多线程?

  • Redis一直倾向于使用单线程,避免了频繁的线程切换,是它的优点之一
  • 4.0之前完全是单线程
  • 4.0之后主线程是单线程,同时还有后台线程(处理脏数据、释放无用链接、删大key等)
  • 6.0之后执行命令是单线程,同时还有其他线程(处理数据读写、解析协议)

发布订阅模式

  • publish命令,将消息发送到指定频道
  • subscribe命令,订阅指定频道
  • 缺点:消息无法持久化,无法记录历史消息

Redis中的事务与关系型数据库中的事务的区别?

  • 事务是一系列命令的集合,事务开启后,所有命令放到队列中,打包到一起发起执行事务的请求,可以在一次请求中执行多个命令
  • MULTI命令开启事务
  • EXEC命令执行事务
  • 关系型事务为原子操作,所有命令要么全部执行成功,要么全部失败
  • 非关系型事务不是原子操作,任何一个命令执行失败都不会妨碍下一个命令继续执行

持久化的两种方式RDB和AOF有什么区别?用哪个更好?

RDB快照(Redis Database)

  • 每隔一个固定的时间间隔,将内存中的数据快照写入磁盘,即ROB保存的是某个时间点内数据的完整副本
  • 优点:恢复速度快,适合备份
  • 缺点:如果服务器突然宕机,最后一次快照之后的数据会丢失,做不到实时持久化
  • 触发方式:1. 自动触发 2. save命令,在执行save命令期间,redis不能干其他事情 3. bgsave命令,创建一个子进程专门来拍快照,创建子进程期间redis不能干其他事情,但拍快照期间可以干其他

AOF日志(Append-Only File)

  • 执行命令时一边将命令写到内存中,一边写到AOF中,Redis重启时利用AOF中的命令重建数据库,即AOF是一个保存着执行过的所有命令的日志
  • 优点:做到了实时持久化
  • 缺点:文件很大,恢复速度慢,启动效率低

各有优点,混合持久化最好,即ROB+增量AOF的形式,AOF文件只保存最后一次快照到此刻的执行命令,Redis重启时,先加载ROB文件,再重放增量AOF文件,即避免了ROB无法实时持久化,也避免了AOF文件过大。

主从复制

  • 将一台redis主服务器的数据复制到其它redis从服务器
  • 低级的redis集群模式
  • 一个主节点可以有多个从节点,一个从节点只有一个主节点
  • 数据单向复制,只能从主到从,主写从读
  • 数据同步的方式可以全量复制,也可以部分复制
  • 优点:数据热备份,故障恢复,负载均衡(读写分离可以分担服务器负载),高可用基石(哨兵模式和集群的基础)
  • 缺点:主节点故障需人工干预(哨兵模式可解决),主节点的写能力受限制(分布式可解决)

Sentinel 哨兵模式

  • 自动故障转移,主从复制过程中主节点故障无需人工干预
  • 以独立进程的形式运行在redis集群中,监控服务器们运行,若发现某节点有问题,通过发布订阅模式通知其他节点,主节点故障会将一个从节点升级成新的主节点,再通知其他从节点更换了主节点。
  • 主观下线和客观下线 主观下线就是哨兵节点认为某个节点有问题,客观下线就是超过一定数量的哨兵节点认为主节点有问题。
  • 如何选新的主节点?拿到节点列表,先过滤不健康节点,再选择优先级最高的节点们,再选复制偏移量最大的节点们(说明数据最完整),再选runid最小的节点(说明启动最早)
  • 哨兵节点是一个进程,也有可能故障,所以一般用3个哨兵,选举一个领导哨兵干活,领导挂了后重新选一个领导哨兵

Redis集群

  • 数据分区/分片:集群最核心的功能。集群将数据分散到多个节点,一方面突破了 Redis 单机内存大小的限制,存储容量大大增加;另一方面 每个主节点都可以对外提供读服务和写服务,大大提高了集群的响应能力。
  • 高可用: 集群支持主从复制和主节点的 自动故障转移 (与哨兵类似),当任一节点发生故障时,集群仍然可以对外提供服务。

集群中如何进行数据分区?

  • 即拿到一个key(数据)应该把它放到集群中的哪个节点上?
  • 数据分区是在创建集群的时候完成的
  • 节点数量至少为6个才能保证组成完整高可用的集群

节点取余分区

  • 对key或用户ID对hash值取余,来确定数据映射到哪一个节点上。
  • 缺点:当节点数量变化时,如扩容或收缩节点,所有数据节点映射关系需要重新计算,会导致数据的重新迁移

一致性哈希分区

  • 将整个 Hash 值空间组织成一个虚拟的圆环,然后对集群节点的 IP 地址或主机名做 Hash 取值后,放置在圆环上。当我们拿到一个key时,先对这个 key 做同样的Hash 取值,确定在环上的位置,然后按照顺时针方向在环上“行走”,遇到环上的第一个节点,将key放入。
  • 优点:加入和删除节点只影响哈希环中相邻的节点,对其他节点无影响
  • 缺点:当节点在圆环上分布不平均时,部分缓存节点的压力会较大。当某个节点故障时,这个节点承担的所有数据访问都会被顺移到下一个节点上,会对下一个节点造成压力。

虚拟槽分区

  • Redis 集群使用的便是该方案
  • 在一致性哈希分区的基础上,引入了虚拟节点,称为槽(slot)。在使用了槽的一致性哈希分区中,一个节点被分割成了多个槽,槽是数据管理和迁移的基本单位。
  • 槽解耦了数据和实际节点之间的关系,增加或删除节点对系统的影响很小。当删除某个节点时,该节点下的多个槽可以带着数据较平均地分配到剩余的多个节点上,避免了该节点所有数据堆积到下一个节点上的问题。

集群的伸缩?

  • 扩容:为新节点分配一定数量的槽和数据
  • 缩容:将槽和数据分配给其他节点,再将要删除的节点下线

如何保证缓存数据和数据库数据的一致?

如何保证本地缓存和分布式缓存的一致?

如何处理热key和大key?

Redis的管道?

相关文章:

一文总结Redis知识点

目录 为什么基于MySQL又出现Redis?Redis的优点?Redis支持的基本命令Redis支持的数据结构1 String2 List3 Set4 Sorted Set5 Hash6 Stream 消息队列7 Geospatial 地理空间8 Bitmap 位图9 Bitfield 位域10 HyperLogLog Redis是单线程还是多线程&#xff1f…...

ARM寄存器组

CM3 拥有通用寄存器 R0‐R15 以及一些特殊功能寄存器。 R0-R7,通用目的寄存器 R0-R7也被称为低组寄存器,所有指令可以访问它们,它们的字长为32位,复位后的初始值是不可预料的。 R8-R12,通用目的寄存器 R8-R12也被称…...

Windows查看当前文件夹下的所有.c文件的个数

在Windows的命令提示符(CMD)中,你可以使用for循环和dir命令结合起来,以计算当前文件夹下所有 .c 文件的个数。 下面是一个简单的示例,这个批处理脚本会计算当前目录下所有 .c 文件的个数: echo off setlo…...

ubuntu Qt 地图离线调用

ubuntu环境下在Qt上调用百度地图_ubuntu 百度地图_拿到金像奖上课那家店的博客-CSDN博客 【Qt初入江湖】Qt QtWebEngineWidgets 底层架构、原理详细描述_鱼弦的博客-CSDN博客 Ubuntu20.04 QT无法用Qwebengine控件的解决方案(临时)_cmsyq的博客-CSDN博客…...

Android Studio升级到Android API 33版本后,XML布局输入没有提示

低版本的Android Studio升级到Android API 33版本后,XML布局输入没有提示。查一下我目前使用的Android Studio 是2021年发布,而Android API 33是2022年发布的,这是由低版本升级到高版本造成不兼容的问题。解决方法有两种: 第一种…...

操作XML(带命名空间)

之前文章讲述了使用c# xpath如何操作xml文件&#xff0c;在实际开发项目中&#xff0c;遇到的很多xml文件都是带有命名空间的&#xff0c;如果还是用之前的代码获取&#xff0c;那将获取到null。 本文讲解操作代码有命名空间的Xml文件&#xff0c;以及多个命名空间的xml。 <…...

二叉搜索树(C++)

二叉搜索树 概念二叉搜索树的应用二叉搜索树的实现K模型基本结构和函数声明接口实现①find——查找关键码②Insert——插入关键码③Erase——删除关键码&#xff08;重点&#xff09;时间复杂度 源码&#xff08;整体&#xff09;非递归递归 KV模型 在使用C语言写数据结构阶段时…...

软件架构知识点

常用软件架构模型分类&#xff08;5种&#xff09; 软件架构建模方法&#xff08;模型4种&#xff09; 架构师分类&#xff08;微软4种&#xff09; 系统架构设计师的角色特质&#xff08;6种&#xff09; 计算机系统组成图谱 嵌入式操作系统的特点&#xff08;5个&#x…...

C语言日常刷题6

文章目录 题目答案与解析1234567 题目 1、以下对C语言函数的有关描述中&#xff0c;正确的有【多选】&#xff08; &#xff09; A: 在C语言中&#xff0c;一个函数一般由两个部分组成&#xff0c;它们是函数首部和函数体 B: 函数的实参和形参可以是相同的名字 C: 在main()中定…...

微信小程序使用stomp.js实现STOMP传输协议的实时聊天

简介&#xff1a; uniapp开发的小程序中使用 本来使用websocket&#xff0c;后端同事使用了stomp协议&#xff0c;导致前端也需要对应修改。 如何使用 在static/js中新建stomp.js和websocket.js&#xff0c;然后在需要使用的页面引入监听代码发送代码即可 代码如下&#x…...

基于饥饿游戏算法优化的BP神经网络(预测应用) - 附代码

基于饥饿游戏算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于饥饿游戏算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.饥饿游戏优化BP神经网络2.1 BP神经网络参数设置2.2 饥饿游戏算法应用 4.测试结果&#xff1a;5…...

[ 云计算 | AWS ] Java 应用中使用 Amazon S3 进行存储桶和对象操作完全指南

文章目录 一、前言二、所需 Maven 依赖三、先决必要的几个条件信息四、创建客户端连接五、Amazon S3 存储桶操作5.1. 创建桶5.2. 列出桶 六、Amazon S3 对象操作6.1. 上传对象6.2. 列出对象6.3. 下载对象6.4. 复制、重命名和移动对象6.5. 删除对象6.6. 删除多个对象 七、文末总…...

【Spring Boot】Spring Boot 配置 Hikari 数据库连接池

文章目录 前言配置 前言 数据库连接池是一个提高程序与数据库的连接的优化&#xff0c;连接池它主要作用是提高性能、节省资源、控制连接数、连接管理等操作&#xff1b; 程序中的线程池与之同理&#xff0c;都是为了优化、提高性能。 配置 spring:datasource:hikari:# 设置是…...

MR混合现实石油化工课堂情景实训教学演示

MR&#xff08;混合现实&#xff09;技术是一种结合了虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;优势的新型技术&#xff0c;在教育领域具有广阔的应用前景。在石油化工课堂中&#xff0c;MR混合现实情景实训教学的应用可以大大提高学生的学习效…...

php thinkphp 抖音支付,订单同步接口分享

1. 抖音支付 需要获取抖音小程序的AppID,AppSecret,需要配置回调地址&#xff0c;Token获取SALT 官方地址&#xff1a;支付&#xff0c;订单同步 以下干货仅针对于有一定开发基础的精英&#xff0c;0基础的止步。 public function DouyinPay($openId,$id,$body 抖音担保支付…...

excel功能区(ribbonx)编程笔记--2 button控件与checkbox控件

我们上一章简单先了解了ribbonx的基本内容,以及使用举例实现自己修改ribbox的内容,本章紧接上一章,先讲解一下ribbonx的button控件。 在功能区的按钮中,可以使用内置图像或提供自已的图像,可以指定大按钮或者更小的形式,添加少量的代码甚至可以同时提供标签。此外,可以利…...

JavaScript 知识点

立即执行函数 代码(function () {// ... })();创建函数的同时立即执行&#xff0c;没有绑定任何事件&#xff0c;也无需等待任何异步操作function () {} 是一个匿名函数&#xff0c;包围它的一对括号将其转换为一个表达式&#xff0c;紧跟其后的一对括号调用了这个函数。立即执…...

深入理解 JVM 之——动手编译 JDK

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 本篇为深入理解 Java 虚拟机第一章的实战内容&#xff0c;推荐在学习前先掌握基础的 Linux 操作、编译原理基础以及扎实的 C/C 功底。 该系列的 GitHub 仓库&#xff1a;https://github.com/Doge2077/lear…...

[移动通讯]【Carrier Aggregation in LTE】【 Theory + Log analysis-1】

CA: Carrrier Aggregation PCC: Primary Component Carrier SCC: SCC Secondary Component Carrier 目录&#xff1a; 背景介绍 PCC & SCC 聚合方式 Precondition for CA 一 背景介绍 在没有CA 技术前&#xff0c;手机和基站以单子载波的方式,收发…...

Sui诚邀您参加KBW「首尔Web3之夜」

韩国区块链周&#xff08;KBW&#xff09;是由FACTBLOCK创办&#xff0c;Hashed联合主办的年度盛会。今年的KBW将于9月4–10日在韩国首尔举办。作为亚洲最具影响力的Web3行业盛会之一&#xff0c;KBW将汇聚业界优秀的参与者和先驱者&#xff0c;共同探讨区块链行业的未来。 Su…...

19.CSS雨云动画特效

效果 源码 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Cloud & Rain Animation</title><link rel="stylesheet" href="style.css"> </head> <bo…...

第61步 深度学习图像识别:多分类建模(TensorFlow)

基于WIN10的64位系统演示 一、写在前面 截至上期&#xff0c;我们一直都在做二分类的任务&#xff0c;无论是之前的机器学习任务&#xff0c;还是最近更新的图像分类任务。然而&#xff0c;在实际工作中&#xff0c;我们大概率需要进行多分类任务。例如肺部胸片可不仅仅能诊断…...

Spark 7:Spark SQL 函数定义

SparkSQL 定义UDF函数 方式1语法&#xff1a; udf对象 sparksession.udf.register(参数1&#xff0c;参数2&#xff0c;参数3&#xff09; 参数1&#xff1a;UDF名称&#xff0c;可用于SQL风格 参数2&#xff1a;被注册成UDF的方法名 参数3&#xff1a;声明UDF的返回值类型 ud…...

ThinkPHP 文件上传 fileSystem 扩展的使用

ThinkPHP 文件上传 ThinkPHP 文件上传 扩展 filesystem一、安装 FileSystem 扩展二、认识 filesystem 配置文件 config/filesystem.php三、上传验证&#xff08;涉及到验证器的知识点&#xff09;四、文件上传demo ThinkPHP 文件上传 扩展 filesystem ThinkPHP 为我们 提供了 …...

液体神经网络LLN:通过动态信息流彻底改变人工智能

巴乌米克泰吉 一、说明 在在人工智能领域&#xff0c;神经网络已被证明是解决复杂问题的非常强大的工具。多年来&#xff0c;研究人员不断寻求创新方法来提高其性能并扩展其能力。其中一种方法是液体神经网络&#xff08;LNN&#xff09;的概念&#xff0c;这是一个利用动态计算…...

2023年的今天,PMP项目管理认证还值得考吗?

首先我肯定它值得考&#xff0c;PMP认证的教材和考纲都会随着项目管理工具和市场趋势而更新&#xff0c;不用担心会过时。 PMP项目管理认证是什么&#xff1f; 英文全称是Project Management Professional&#xff0c;中文全称叫做项目管理专业人士资格认证。它是由美国项目管…...

【JavaSE专栏91】Java如何主动发起Http、Https请求?

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;3年JAVA全栈开发经验&#xff0c;专注JAVA技术、系统定制、远程指导&#xff0c;致力于企业数字化转型&#xff0c;CSDN学院、蓝桥云课认证讲师。 主打方向&#xff1a;Vue、SpringBoot、微信小程序 本文讲解了如何使用…...

给oracle逻辑导出clob大字段、大数据量表提提速

文章目录 前言一、大表数据附&#xff1a;查询大表 二、解题思路1.导出排除大表的数据2.rowid切片导出大表数据Linux代码如下&#xff08;示例&#xff09;&#xff1a;Windows代码如下&#xff08;示例&#xff09;&#xff1a;手工执行代码如下&#xff08;示例&#xff09;&…...

研发规范第九讲:通用类命名规范(重点)

研发规范第九讲&#xff1a;通用类命名规范&#xff08;重点&#xff09; 无规范不成方圆。我自己非常注重搭建项目结构的起步过程&#xff0c;应用命名规范、模块的划分、目录&#xff08;包&#xff09;的命名&#xff0c;我觉得非常重要&#xff0c;如果做的足够好&#xff…...

python+django+协同过滤算法-基于爬虫的个性化书籍推荐系统(包含报告+源码+开题)

为了提高个性化书籍推荐信息管理的效率&#xff1b;充分利用现有资源&#xff1b;减少不必要的人力、物力和财政支出来实现管理人员更充分掌握个性化书籍推荐信息的管理&#xff1b;开发设计专用系统--基于爬虫的个性化书籍推荐系统来进行管理个性化书籍推荐信息&#xff0c;以…...

系统架构:软件工程

文章目录 资源知识点自顶向下与自底向上形式化方法结构化方法敏捷方法净室软件工程面向服务的方法面向对象的方法快速应用开发螺旋模型软件过程和活动开放式源码开发方法功用驱动开发方法统一过程模型RUP基于构件的软件开发UML 资源 信息系统开发方法 知识点 自顶向下与自底…...

泰迪大数据实训平台产品介绍

大数据产品包括&#xff1a;大数据实训管理平台、大数据开发实训平台、大数据编程实训平台等 大数据实训管理平台 泰迪大数据实训平台从课程管理、资源管理、实训管理等方面出发&#xff0c;主要解决现有实验室无法满足教学需求、传统教学流程和工具低效耗时和内部教学…...

Linux- 文件夹相关的常用指令

1. 统计文件夹下的文件数量 在 Linux 下&#xff0c;有几种方法可以统计文件夹下的文件数量&#xff1a; 使用 ls 和 wc 命令&#xff1a; 这种方式可以统计目录下的直接子文件&#xff08;不包括子目录里的文件&#xff09;。 ls -l <目录路径> | wc -l注意&#xff1a…...

在 macOS 中安装 TensorFlow 1g

tensorflow 需要多大空间 pip install tensorflow pip install tensorflow Looking in indexes: https://pypi.douban.com/simple/ Collecting tensorflowDownloading https://pypi.doubanio.com/packages/1a/c1/9c14df0625836af8ba6628585c6d3c3bf8f1e1101cafa2435eb28a7764…...

数学建模:CRITIC赋权法

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 CRITIC赋权法 算法流程 构建原始数据矩阵 X X X&#xff0c;他是一个 m ∗ n m * n m∗n 的矩阵&#xff0c; m m m 表示评价对象个数&#xff0c; n n n 表示指标个数对原始数据矩阵进行正向化处理计算…...

Facebook message tag 使用攻略

Messenger 讯息传不出去&#xff1f;无法发送FB 讯息给非好友&#xff1f; 2020年3月&#xff0c;Facebook 为了防止用户被过多的推广或垃圾讯息困扰而更新使用条款&#xff0c;现在商家要用FB传讯息给所有人&#xff08;包括非好友&#xff09;&#xff0c;应该使用 Facebook …...

气传导耳机哪个品牌比较好?综合表现很不错的气传导耳机推荐

​气传导耳机不仅能够提升幸福感还能听到周围环境声&#xff0c;大大提高安全性。如果你在寻找一款高品质的气传导耳机&#xff0c;又不知从何入手时&#xff0c;不要担心&#xff0c;我已经为你精心挑选了四款市面上综合表现很不错的气传导耳机&#xff0c;让你享受更好的音质…...

Rabbitmq的消息转换器

Spring会把你发送的消息序列化为字节发送给MQ&#xff0c;接收消息的时候&#xff0c;还会把字节反序列化为Java对象 ,只不过&#xff0c;默认情况下Spring采用的序列化方式是JDK序列化。众所周知&#xff0c;JDK序列化存在下列问题&#xff1a; 数据体积过大 有安全漏洞 可读…...

nvidia-docker的使用

拉取镜像 docker pull nvidia/cuda可能出现的问题 问题描述 Error response from daemon: manifest for nvidia/cuda:latest not found: manifest unknown: manifest解决方法&#xff1a; 为找到正确且合适的docker镜像版本 在supported-tags中找到与自己系统对应的cuda版本…...

C++新经典 | C语言

目录 一、基础之查漏补缺 1.float精度问题 2.字符型数据 3.变量初值问题 4.赋值&初始化 5.头文件之<> VS " " 6.逻辑运算 7.数组 7.1 二维数组初始化 7.2 字符数组 8.字符串处理函数 8.1 strcat 8.2 strcpy 8.3 strcmp 8.4 strlen 9.函数 …...

物联网智慧种植农业大棚系统

一、项目背景 智慧农业是是将物联网技术和农业生产箱管理的新型农业&#xff0c;依托部署在农业生产现场的各种传感节点&#xff0c;以物联网网关为通道形成数据传输网络&#xff0c;可以实现控制柜、环境监测传感器、气象监测机器等设备的远程监控&#xff0c;达到及时高校的…...

TabBar组件如何跳转页面?

1、先引入 2、假数据 const tabs [{key: home,title: 首页,icon: <AppOutline />,badge: Badge.dot,},{key: todo,title: 待办,icon: <UnorderedListOutline />,badge: 5,},{key: message,title: 消息,icon: (active: boolean) >active ? <MessageFill /&…...

Vue.js中,router和route

<div class"search">{{$route.params.things}}<van-nav-bar fixed title"商品列表" left-arrow click-left"$router.go(-1)" /><van-searchreadonlyshape"round"background"#ffffff"value"手机"sh…...

【微服务】07-缓存

文章目录 为不同的场景设计合适的缓存策略1. 缓存是什么2. 缓存的场景3. 缓存的策略4. 缓存位置5. 缓存实现的要点6. 注意问题7. 使用的组件8. 内存缓存和分布式缓存区别 总结 为不同的场景设计合适的缓存策略 1. 缓存是什么 缓存是计算结果的“临时”存储和重复使用缓存本质…...

权限校验中的“双token”方案

1. 双Token中的两个token分别是什么&#xff1f; 1.1 access_token 1.2 fresh_token 2. 为什么需要双token&#xff1f;一个token不行吗&#xff1f; 答&#xff1a; 两个token的职责不同。其中&#xff0c;access_token是在每次请求的时候携带给后端进行权限校验&#xff…...

TensorFlow的基本概念

TensorFlow 是由 Google 开发的开源机器学习框架&#xff0c;其基本概念如下&#xff1a; 1. 张量&#xff08;Tensor&#xff09;&#xff1a;TensorFlow 中最基本的数据结构&#xff0c;是多维数组&#xff0c;可以理解为向量或矩阵的推广。常见的张量有常量张量、变量张量和…...

【卷积神经网络】MNIST 手写体识别

LeNet-5 是经典卷积神经网络之一&#xff0c;1998 年由 Yann LeCun 等人在论文 《Gradient-Based Learning Applied to Document Recognition》中提出。LeNet-5 网络使用了卷积层、池化层和全连接层&#xff0c;实现可以应用于手写体识别的卷积神经网络。TensorFlow 内置了 MNI…...

Ansible学习笔记2

Ansible是Python开发的自动化运维工具&#xff0c;集合了众多运维工具&#xff08;Puppet、cfengine、chef、func、fabric&#xff09;的优点&#xff0c;实现了批量系统配置&#xff0c;批量程序部署、批量运行命令等功能。 特点&#xff1a; 1&#xff09;部署简单&#xff…...

80. 删除有序数组中的重复项 II

【中等题】 题目&#xff1a; 给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额…...

CVE-2023-36874 Windows错误报告服务本地权限提升漏洞分析

CVE-2023-36874 Windows错误报告服务本地权限提升漏洞分析 漏洞简介 Windows错误报告服务在提交错误报告前会创建wermgr.exe进程&#xff0c;而攻击者使用特殊手法欺骗系统创建伪造的wermgr.exe进程&#xff0c;从而以system权限执行代码。 影响版本 Windows10 1507 * Wind…...