Redis基础系列-持久化

2023-12-16

Redis基础系列-持久化

1. 什么是持久化

内存中的数据保存到磁盘中

2. 为什么要持久化

Redis持久化可以将内存中的数据保存到硬盘上, 保证Redis的数据持久性和可靠性 以避免数据在异常情况下丢失和损坏 。持久化是保证Redis应用安全的重要手段。

3. 持久化的两种方式

redis持久化官网介绍

3.1 持久化方式1:RDB(redis默认持久化方式)

RDB( Redis DataBase )模式是Redis的默认持久化模式。它会将Redis在某个时间点上的数据生成一个快照,并将快照以二进制形式保存在磁盘上。RDB模式的优点在于快速且紧凑,适合用于备份和恢复数据。然而,由于定期生成快照的特性,可能会导致在两次快照之间的数据丢失。

适用场景: 对数据的实时性要求不高,可以接受一定程度的数据丢失,同时对于需要频繁备份和恢复数据的场景。

3.11 配置步骤-自动触发
  • 操作步骤:

1.修改5秒2次变更

save 5 2


2.修改快照文件保存路径(需优先创建:dumpfiles目录)

dir /myredis/dumpfiles

3.修改快照名称

dbfilename dump6379.rdb

  1. 重启redis验证配置是否成功(略)
127.0.0.1:6379> config get save
1) "save"
2) "5 2"
127.0.0.1:6379> config get dir
1) "dir"
2) "/myredis/dumpfiles"
127.0.0.1:6379> config get dbfilename
1) "dbfilename"
2) "dump6379.rdb"
127.0.0.1:6379>
  • 触发配置
// 变更两次,查看是否会生产快照文件
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> 

  • 备份恢复
    • redis 执行 flushall 也会产生dump文件,不过是空的
    • redis 执行 shutdown 也会产生dump文件,不过是空的
    • redis 直接重启就会加载备份的快照文件
3.12 配置步骤-手动触发
  • save命令

在主程序中执行会 阻塞 当前redis服务器,直到持久化工作完成执行save命令期间,Redis不能处理其他命令, 线上禁止使用

  • bgsave(Background Save)命令(默认)

Redis会使用bgsave对当前内存中的所有数据做快照这个操作是子进程在后台完成的,这就允许主进程同时可以修改数据

可以通过 lastsave 命令获取最后一次成功执行快照的时间

127.0.0.1:6379> lastsave
(integer) 1701683772
127.0.0.1:6379> 
[root@Docker110]# date -d @1701683772
2023年 12月 04日 星期一 17:56:12 CST
3.12 优点
  • 适合大规模的数据恢复按照业务定时备份
  • 对数据完整性和一致性要求不高
  • RDB文件在内存中的加载速度要比 AOF 快得多
3.13 缺点
  • 在一定间隔时间做一次备份,所以如果redis章外down掉的话,就会丢失从当前至最近一次快照期间的数据,快照之间的数据会丢失
  • 内存数据的全量同步,如果数据量太大会导致I/O严重影响服务器性能RDB依赖于主进程的fork,在更大的数据集中,这可能会导致服务请求的瞬间延迟。fork的时候内存中的数据被克隆了一分,大致2倍的膨胀性,需要考虑
3.14 检查和修复RDB快照文件
redis-check-rdb /myredis/dumpfiles/dump6379.rdb

3.15 哪些情况会触发RDB快照
  • 配置文件中默认的快照配置
  • 手动save/bgsave命令
  • 执行flushall/flushdb命令也会产生dump.rdb文件,但里面是空的,无意义
  • 执行shutdown且没有设置开启AOF持久化
  • 主从复制时,主节点自动触发
3.16 如何禁用快照
  • 命令方式:
redis-cli config set save ""
  • 修改配置文件:
3.17 RDB优化配置项详解
  • stop-writes-on-bgsave-error


默认yes
如果配置成no,表示你不在乎数据不一致或者有其他的手段发现和控制这种不一致,那么在快照写入失败时,
也能确保redis继续接受新的写请求
  • rdbcompression

默认yes
对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。
如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能
  • rdbchecksum

默认yes
在存储快照后,还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能
  • rdb-del-sync-files

rdb-del-sync-files:在没有持久性的情况下删除复制中使用的RDB文件启用。默认情况下no,此选项是禁用的。

3.2 持久化方式2:AOF

AOF( Append Only File )模式是另一种常用的持久化模式。它会将每个写操作都追加到一个日志文件中,从而记录了Redis的所有操作命令。在恢复数据时,Redis会重新执行这些操作命令以还原数据。AOF模式的优点在于数据的持久化更加可靠,不会丢失任何写操作。然而,由于需要记录每一条写命令,相对于RDB模式,AOF模式的写入性能较差。

适用场景: 对数据的可靠性要求较高,需要最大程度地避免数据丢失的场景

3.2.1 AOF持久化工作流程

序号 描述
1 Client作为命令的来源,会有多个源头以及源源不断的请求命令。
2 在这些命令到达Redis Server以后并不是直接写入AOF文件,会将其这些命令先放入AOF缓存中进行保存。这里的AOF缓冲区实际上是内存中的一片区域,存在的目的是当这些命令达到一定量以后再写入磁盘,避免频繁的磁盘IO操作。
3 AOF缓冲会根据AOF缓冲区同步文件的 三种写回策略 将命令写入磁盘上的AOF文件。
4 随着写入AOF内容的增加为避免文件膨胀,会根据规则进行命令的合并(又称AOF重写),从而起到AOF文件压缩的目的。
5 当Redis Server服务器重启的时候会从AOF文件载入数据。
3.2.2 三种写回策略
配置项 写回时机 优点 缺点
Always 同步写回 可靠性高,数据基本不丢失 每个写命令都要落盘,性能影响较大
Everysec(默认) 每秒写回 性能适中 宕机时丢失1秒内的数据
No 操作系统控制 性能好 宕机时丢失数据较多
3.2.3 AOF配置说明
配置指令 描述 配置示例
appendonly 是否开启AOF appendonly yes
appendfilename AOF文件名称 appendfilename “appendonly.aof”
dir+appenddirname AOF文件路径 dir /myredis+“appendonlydir”
appendfsync AOF同步写回方式 everysec/always/no
no-appendfsync-on-rewrite AOF重写期间是否同步写回 no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage
auto-aof-rewrite-min-size
AOF重写触发配置,触发重写的比例阈值和最小文件大小阈值;
满足配置文件中的选项后,Redis会记录上次重写时的AOF大小
默认配置是当AOF文件大小是上次rewrite后大小的一倍目文件大于64M时
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
3.2.4 AOF文件说明

Redis7.0 Multi Part AOF 的设计
顾名思义,MP-AOF就是将原来的单个AOF文件拆分成多个AOF文件( redis6只有一个文件 )。在MP-AOF中,我们将AOF分为三种类型分别为:
它一般由子进程通过重写产生,该文件最多只有一个

  • BASE: 表示基础AOF
  • INCR: 表示增量AOF,
    它一般会在AOFRW开始执行时被创建,该文件可能存在多个。
  • HISTORY: 表示历史AOF,它由BASE和INCR AOF变化而来,每次AOFRW成功完成时本次AOFRW之前对应的BASE和INCR AOF都将变为HISTORY,HISTORY类型的AOF会被Redis自动删除为了管理这些AOF文件我们引入了一个manifest (清单) 文件来跟踪、管理这些AOF。同时,为了便于AOF备份和拷贝,我们将所有的AOF文件和manifest文件放入一个单独的文件目录中,目录名由appenddirname配置
    (Redis 7.0新增配置项) 决定。

// 如有下的aof文件存在
1.基本文件
appendonly.aof.1base .rdb
2.增量文件
appendonly.aof.1.incr.aof
appendonly.aof.2.incr.aof
3.清单文件
apendonly.aof.manifest

AOF路径说明

redis7.0 AOF文件路径: dir + appenddirname 其中

  • dir是RDB和AOF共用配置参数
  • appenddirname 是redis7新增的aof独特配置
// 几种类型文件的前缀,后跟有关序列和类型的附加信息
appendfilename"appendonly.aof
//新版本增加的目录配置项目
appenddirname "appendonlydir"
3.2.5 AOF恢复

采用 flushdb + shutdown 模拟redis异常终止,需要注意的是:

  • flushdb 也是写操作,也会写入aof文件,所以在执行 flushdb 之前备份aof文件, flushdb 之后可以使用 备份的aof 覆盖掉aof文件
  • 也可以不备份,在执行完 flushdb + shutdown 操作之后,手动删除增量文件中的最后 flushdb 命令
  • 为了防止RDB文件的干涉,重启之前删除RDB文件,或者模拟整个过程中关闭RDB持久化

最后,重启reids便可加载aof文件进行数据恢复

3.2.6 AOF文件修复

故意破环aof增量文件

[root@Docker110 appendonlydir]# vim appendonly.aof.1.incr.aof 
*2
$6
......
$1
0
jasitfgjwaior943q294r534jiosa(*(u

重启启动之后查看

居然启动失败,赶紧查看一下日志,日志文件

日志文件路径的配置

建议让我们修复一下aof文件

再次启动,成功恢复

3.2.7 AOF重写机制

AOF 文件的不断增长可能会导致性能问题。为了解决这个问题,Redis 实现了 AOF 重写机制。AOF 重写是一种优化技术,通过在后台进程中重构 AOF 文件的数据,来减小 AOF 文件的大小。
启动AOF文件的内容压缩,只保留可以恢复数据的最小指令集

也就是说 AOF 文件重写并不是对原文件进行重新整理,而是直接读取服务器现有的键值对,
然后用一条命令去代替之前记录这个键值对的多条命令,生成一个新的文件后去替换原来的 AOF 文件。
AOF 文件重写触发机制: 过 redis.conf 配置文件中的 auto-aofrewrite-percentage: 默认值为100,以及auto-aofrewritemin-size: 64mb 配置,
也就是说默认Redis会记录上次重写时的AOF大小,默认配置是当AOF文件大小是上次rewrite后大小的一倍目文件大于64M时触发
  • 重写机制的配置

注意 ,同时满足,且的关系才会触发
1 根据上次重写后的aof大小,判断当前aof大小是不是增长了1倍
2 重写时满足的文件大小
  • 触发方式
1. 自动触发:满足重写机制配置条件,就会自动后台执行重写,也就是压缩aof
2. 手动触发: 客户端向服务器发送 bgrewriteaof 命令
  • 重写原理
1.AOF 重写机制的原理是根据 Redis 进程内的数据生成一个新的 AOF 文件,只包含当前有效和存在的数据的写入命令,而不是历史上所有的写入命令 。
2.AOF 重写机制是通过 fork 出一个子进程来完成的,子进程会扫描 Redis 的数据库,并将每个键值对转换为相应的写入命令,然后写入到一个临时文件中 。
3.在子进程进行 AOF 重写的过程中,主进程还会继续接收和处理客户端的请求,如果有新的写操作发生,主进程会将这些写操作追加到一个缓冲区中,并通过管道通知子进程 。
4.子进程在完成 AOF 重写后,会将缓冲区中的写操作也追加到临时文件中,然后向主进程发送信号,通知主进程可以切换到新的 AOF 文件了 。
5.主进程在收到子进程的信号后,会将缓冲区中的写操作再次追加到临时文件中(以防止在此期间有新的写操作发生),然后用临时文件替换旧的 AOF 文件,并关闭旧的 AOF 文件 
  • 验证
文件大小调整为 1k 方便验证

反复多次设置k1

查看增量aof内容的的变化、aof文件名称以及大小的变化

可以清晰的看到重写之后的变化:

  1. base基础aof由0变成130、增量aof由384变成0、清单aof没有变化,整体大小进行了压缩
  2. 文件序号由1变成了
3.2.8 总结

更好的保护数据不丢失 、性能高、可做紧急恢复相同数据集的数据而言aof文件要远大于rdb文件,恢复速度慢于rdbaof运行效率要慢于rdb,每秒同步策略效率较好,不同步效率和rdb相同

3.3 持久化方式3:混合模式RDB+AOF

3.3.1 混合模式介绍

我们首先看看官网对混合模式的介绍:

一般来说,如果你想要一个与PostgreSQL相媲美的数据安全程度,你应该使用这两种持久化方法。RDB镜像做全量持久化,AOF做增量持久化
结合了RDB和AOF的优点,既能快速加载又能避免丢失过多的数据

3.3.2 开启混合方式设置
设置aof-use-rdb-preamble的值为 yes   yes表示开启,设置为no表示禁用

先使用RDB进行快照存储,然后使用AOF持久化记录所有的写操作,当重写策略满足或手动触发重写的时候,将最新的数据存储为新的RDB记录。这样的话,重启服务的时候会从RDB和AOF两部分恢复数据,既保证了数据完整性,又提高了恢复数据的性能。
简单来说:混合持久化方式产生的文件一部分是RDB格式,一部分是AOF格式(AOF包括了RDB头部+AOF混写)

3.3.3 数据的加载流程

在同时开启rdb 和aof 持久化时,重启时只会加载 aof 文件,不会加载 rdb 文件,rdb做为一个万一的策略

3.4 纯缓存模式

同时关闭RDB+AOF

  • 禁用RDB( save "" )
    禁用RDB持久化模式下,我们仍然可以使用命令 save、bgsave 生成rdb文件
  • 禁用AOF( appendonly no )
    禁用AOF持久化模式下,我们仍然可以使用命令 bgrewriteaof 生成aof文件

4. 参考和感谢

尚硅谷Redis零基础到进阶,最强redis7教程,阳哥亲自带练

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis基础系列-持久化 的相关文章

  • 在节点中使用redis获取hash key的所有字段和值

    红色是使用哈希 我需要存储具有多个字段和值的哈希键 我尝试如下 client hmset Table1 Id 9324324 ReqNo 23432 redis print client hmset Table1 Id 9324325 Re
  • 是否可以使用带有 FUSE 文件系统的 Linux VFS 缓存?

    默认情况下 Linux VFS 缓存似乎不适用于 FUSE 文件系统 例如 read 调用似乎被系统地转发到 FUSE 文件系统 我在 FUSE 特定的远程文件系统上工作 我需要一个非常积极的缓存 我需要实现自己的页面缓存吗 或者是否可以为
  • Node.js 上通过套接字连接 Redis

    由于共享托管 目标主机上的我的 redis 服务器不在端口上运行 而是在非常特定的套接字上运行 可以通过套接字文件连接到该套接字 只有我的用户可以访问 但是 我还没有找到如何通过套接字指定连接node redis and connect r
  • Stackexchange.redis 缺乏“WAIT”支持

    我在客户端应用程序正在使用的负载均衡器后面有 3 个 Web API 服务器 我正在使用这个库来访问具有一个主服务器和几个从服务器的 Redis 集群 目前不支持 WAIT 操作 我需要此功能来存储新创建的用户会话并等待它复制到所有从属服务
  • 仅当尚未设置时才进行原子设置

    仅当尚未在 Redis 中设置时 是否有办法执行原子设置 具体来说 我正在创建一个像 myapp user user email 这样的用户 并且希望 Redis 在 user email 已被占用时返回错误 而不是默默地替换旧值 比如声明
  • redis集群不断打印日志WSA_IO_PENDING

    当我启动redis集群的所有redis服务器时 所有这些服务器不断打印类似WSA IO PENDING clusterWriteDone的日志 9956 03 Feb 18 17 25 044 WSA IO PENDING writing
  • 为什么Redis中不建议使用KEYS?

    在Redis中 建议不要使用按键命令 https redis io commands KEYS 为什么会这样呢 是因为它的时间复杂度是 O N 吗 或者是别的什么原因 我做了下面的实验来证明KEYS命令有多么危险 当带有 KEYS 的一个命
  • WSL Redis 遇到系统尚未使用 systemd 作为 init 系统(PID 1)启动。无法操作[已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试遵循本文中讨论的 Redis 安装过程article https www digitalocean com community
  • 库存管理系统的 SQL 与 NoSQL

    我正在开发一个基于 JAVA 的网络应用程序 主要目的是拥有在多个称为渠道的网站上销售的产品的库存 我们将担任所有这些渠道的管理者 我们需要的是 用于管理每个渠道的库存更新的队列 库存表 其中包含每个通道上分配的正确快照 将会话 ID 和其
  • redis-cli 重定向到 127.0.0.1

    我在PC1上启动Redis集群 然后在PC2上连接它 当需要重定向到另一个集群节点时 它会显示Redirected to slot 7785 located at 127 0 0 1 但应该显示Redirected to slot 7785
  • Redis INCRBY 有限制

    我想知道是否有一种方法可以通过我的应用程序的单次往返在 Redis 中执行此操作 对于给定的键K 其可能值V是范围内的任意整数 A B 基本上 它有上限和下限 When an INCRBY or DECRBY发出命令 例如INCRBY ke
  • 从redis中检索大数据集

    一台服务器上的应用程序查询另一台服务器上运行的 Redis 查询的结果数据集约为 250kzrangebyscore objects locations inf inf这在应用程序服务器上似乎需要 40 秒 当使用命令执行时redis cl
  • 在 aws-elasticache 上使用 memcached 或 Redis

    我正在 AWS 上开发一个应用程序 并使用 AWS elasticache 进行缓存 我对使用 memcached 或 redis 感到困惑 我阅读了有关 redis 3 0 2 更新以及它现在如何等同于 memchached 的文章 ht
  • 使用Redis从有限范围内生成唯一ID

    我有一些数据库项目 除了主键之外 还需要项目所属组的唯一索引 我们来调用属性nbr 以及将项目分组在一起并定义唯一范围的属性nbr 我们会打电话group This nbr必须在 1 N 范围内 并且may从外部源导入项目时进行设置 由于所
  • Redis Cluster 与 Pub/Sub 中的 ZeroMQ,用于水平扩展的分布式系统

    如果我要设计一个巨大的分布式系统 其吞吐量应随系统中的订阅者数量和通道数量线性扩展 哪个会更好 1 Redis集群 仅适用于Redis 3 0 alpha 如果是集群模式 您可以在一个节点上发布并在另一个完全不同的节点上订阅 消息将传播并到
  • 使用 Sentinels 升级 Redis 的最佳实践?

    我有 3 个 Redis 节点 由 3 个哨兵监视 我进行了搜索 文档似乎不清楚如何最好地升级此类配置 我目前使用的是 3 0 6 版本 我想升级到最新的 5 0 5 我对这方面的程序有几个疑问 升级两个大版本可以吗 我在我们的暂存环境中执
  • 有没有办法用Lettuce自动发现Redis集群中新的集群节点IP

    我有一个Redis集群 3主3从 运行在一个库伯内斯簇 该集群通过Kubernetes 服务 Kube 服务 我将我的应用程序服务器连接到 Redis 集群 使用Kube 服务作为 URI 通过 Redis 的 Lettuce java 客
  • 有没有办法让特定的key在集群模式下定位到特定的redis实例上?

    我想让我的多锁位于不同的redis实例上 我发现redission可以指定一个实例来执行命令 但是如果该命令与key相关 则指定的实例会将命令传输到另一个实例 你能给我一些建议吗 你可以 但这并不是微不足道的 首先 Redis 在键中使用大
  • Redis是如何实现高吞吐量和高性能的?

    我知道这是一个非常普遍的问题 但是 我想了解允许 Redis 或 MemCached Cassandra 等缓存 以惊人的性能极限工作的主要架构决策是什么 如何维持连接 连接是 TCP 还是 HTTP 我知道它完全是用C写的 内存是如何管理
  • redis dump.rdb / 保存小文件

    Context 我正在使用redis 数据库小于 100 MB 但是 我想进行每日备份 我也在 Ubuntu Server 12 04 上运行 当输入 redis cli save 我不知道 dump rdb 保存到哪里 因为 redis

随机推荐

  • IT鄙视链:做前端的鄙视做后端的?

    IT鄙视链 做前端的鄙视做后端的 1 你之道IT行业的鄙视链吗 2 为什么会有 IT行业的鄙视链 3 我们怎么看待IT鄙视链呢 4 相关语言的优势 4 1 Java语言 4 2 PHP语言的优势 4 3 Python语言的优势 4 4 C
  • 云服务器Centos中安装Docker

    云服务器Centos中安装Docker 1 简介 Docker Centos Centos和Ubuntu区别 2 安装 3 测试hello world的镜像测试 1 简介 Docker Docker是一个开源的应用容器引擎 利用操作系统本身
  • 基于微信小程序实现智能班务管理系统演示【附项目源码+论文说明】

    基于微信小程序实现智能班务管理系统演示 摘要 随着学校规模的不断扩大 学生数量急剧增加 有关学生的各种信息也成倍增长 面对如此庞大的信息量 开发班级综合管理系统来提高学生管理工作的效率就成为必然 通过该系统 可以做到信息的规范管理 科学统计
  • 四大院系!计算机er保研北大有哪些项目可以选择?

    写在前面 北京大学 作为国内顶尖的学府 一直以其丰富的学科体系和卓越的师资力量吸引着广大学子的目光 尤其在计算机领域 北京大学的计算机相关学院一直以其卓越的教学和研究水平而闻名 在北京大学广泛而多元的众多院系中 对于计算机专业的学生而言有哪
  • 软件开发流程分析

    软件开发流程分析 相关概念 1 原型设计 2 产品设计 3 交互设计 4 代码实现 详细步骤 相关概念 前端 自研API 调用第三放API 后端 自研API 第三方API 数据库 Mysql 数据采集 数据迁移 服务器 JAVA Nginx
  • 阿里云添加二级域名

    阿里云添加二级域名 1 申请配置域名 1 1 购买域名 1 2 登录到阿里云服务器控制台 进入云解析DNS页面 1 3 点击 域名解析 1 4 点击 添加记录 1 5 进行txt校验 1 6 添加记录
  • halcon视觉缺陷检测常用的6种方法

    一 缺陷检测综述 缺陷检测是视觉需求中难度最大一类需求 主要是其稳定性和精度的保证 首先常见缺陷 凹凸 污点瑕疵 划痕 裂缝 探伤等 常用的手法有六大金刚 在halcon中的ocv和印刷检测是针对印刷行业的检测 有对应算子封装 1 blob
  • firewalld 防火墙启用后80端口无法进行访问

    1 首先查看防火墙的状态是否开启 由下图红框中可知防火墙已经启动 systemctl status firewalld 2 查看防火墙开启了那些端口 firewall cmd list all 上面的interfaces 代表防火墙对哪块网
  • 系统维护与调试命令 -- ping

    系统维护与调试命令 ping 一 H3C交换机和路由器中的 ping 命令 ping命令用来检查指定IP地址是否可达 并输出相应的统计信息 命令 ping ip a source ip c count f h ttl i interface
  • <a>标签的超链接前面会自动加上当前(网站)地址

    当前 网站 地址是 fyh com 在代码里写 a 标签时 会自动在链接前添加 fyh com 例如写如下代码 a href www baidu com baidu a 在浏览器中点击链接会跳转至 fyh com www baidu com
  • Windows安装Tesseract OCR与Python中使用pytesseract进行文字识别

    文章目录 前言 一 下载并安装Tesseract OCR 二 配置环境变量 三 Python中安装使用pytesseract 总结 前言 Tesseract OCR是一个开源OCR Optical Character Recognition
  • vim常见操作

    vim常见操作 文章目录 vim常见操作 1 回退 前进 2 搜索 3 删除 4 定位到50行 5 显示行号 6 复制粘贴 7 剪贴
  • 一份自动驾驶量产阶段的BEV自动标注系统超实用指南

    编辑 智能车情报局 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 BEV感知 技术交流群 本文只做学术分享 如有侵权 联系删文 导读 本文提出了一种用于自动驾驶数据采集的自动或半自动标注系统
  • 刘强东发文检讨:京东现在臃肿低效,必须改变!

    编辑 雷峰网 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 全栈算法 技术交流群 本文只做学术分享 如有侵权 联系删文 今日头条 HEADLINE NEWS 刘强东内网发声 京东组织臃肿低效
  • 相机Camera:最核心没有之一的感知传感器

    作者 萧谭辉 编辑 汽车人 原文链接 https zhuanlan zhihu com p 669728398 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 硬件交流 技术交流群 本文只做学
  • Windows使用selenium操作浏览器爬虫

    以前的大部分程序都是操作Chrome 很少有操作Edge 现在以Edge为例 Selenium本身是无法直接控制浏览器的 不同的浏览器需要不同的驱动程序 Google Chrome需要安装ChromeDriver Edge需要安装Micro
  • Redis基础系列-主从复制

    Redis基础系列 主从复制 文章目录 Redis基础系列 主从复制 1 什么是 Redis 主从复制 2 主从复制有什么好处 3 如何配置 Redis 主从复制 4 主从复制的验证 4 1 如何查看主从搭建成功
  • 安卓MediaRecorder(2)录制源码分析

    文章目录 前言 JAVA new MediaRecorder 源码分析 android media MediaRecorder cpp native init MediaRecorder java postEventFromNative a
  • 【图对比学习】GACN:使用对抗网络增强图对比学习

    论文题目 Graph Contrastive Learning with Generative Adversarial Network 使用对抗网络增强图对比学习 论文地址 https dl acm org doi pdf 10 1145
  • Redis基础系列-持久化

    Redis基础系列 持久化 文章目录 Redis基础系列 持久化 1 什么是持久化 2 为什么要持久化 3 持久化的两种方式 3 1 持久化方式1 RDB redis默认持久化方式