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

Redis:概念、部署、配置、优化

目录

关系型数据库与非关系型数据库

关系型数据库

非关系型数据库

非关系型数据库存在的原因

Redis

概念

优点

Redis部署流程

初步设置

安装

初始化

初始化时指定的参数说明

Redis配置文件

修改监听地址

Redis远程连接

远程连接

测试服务端状态

redis-benchmark测试工具

测试请求性能

测试读写性能

set 与 lpush 操作性能

Redis常用命令

创建键值对

get

keys

exists

del

type

rename

renamenx

dbsize

数据库操作

多数据库间切换

多数据库间移动数据

清除数据库内数据

Redis持久化

概念

分类

RDB

AOF

二者选择的标准

Redis 持久化配置

RDB

AOF

AOF重写

性能管理

回收策略


关系型数据库与非关系型数据库

关系型数据库

  • 一个结构化的数据库,创建在关系模型基础上
  • 一般面向于记录
  • 比如:Oracle、MySQL、SQL Server、Microsoft Access、DB2等等
  • 基于硬盘

非关系型数据库

  • 除了主流的关系型数据库外的数据库,都认为是非关系型数据库
  • 比如:Redis、MongoDB、Hbase、CouhDB等等
  • 定义键值对,通过调用键去获取值
  • 基于内存
  • 基于C/S架构

非关系型数据库存在的原因

  • High Performance:对数据库高并发读写的需求
  • High Storage:对海量数据高效存储与访问的需求
  • High Scalability && High Availability:对数据库高扩展性与高可用性的需求

Redis

概念

  • Redis是基于内存运行的,并且支持持久化
  • 采用Key-Value(键值对)的存储形式

优点

  1. 具有极高的数据读写速度
  2. 支持数据的持久化(持续存储数据)
  3. 支持数据备份
  4. 原子性

Redis部署流程

初步设置

打开两台虚拟机并连接上XShell,然后开启会话同步,再将redis的源码包导入该主机

101主机作为服务端,102主机作为客户端

为了方便实验,关闭防火墙和内核安全机制,然后安装redis所需的依赖环境

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install gcc* zlib-devel
安装

解压该源码包,进入解压目录,安装,创建软链接优化命令路径

[root@localhost ~]# tar zxvf redis-4.0.9.tar.gz
[root@localhost ~]# cd redis-4.0.9
[root@localhost redis-4.0.9]# make
[root@localhost redis-4.0.9]# make PREFIX=/usr/local/redis install
[root@localhost redis-4.0.9]# ln -s /usr/local/redis/bin/* /usr/local/bin/
初始化

由于是使用源码包安装的Redis,在没经过初始化之前是不能使用的,所以这里先初始化redis

还是解压目录下,进入utils目录下,运行install_server.sh初始化脚本进行初始化

这个脚本会让你指定一些信息,全部回车用默认的就行,最后使用netstat命令可以看到redis已经在运行了,监听的IP是127.0.0.1

如果要在同一台主机上部署多个Redis实例,那么在初始化时指定的信息都要改变

实例:运行在内存上的一个进程

[root@localhost redis-4.0.9]# cd utils/
[root@localhost utils]# ./install_server.sh
[root@localhost utils]# netstat -anpt | grep redis
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      4893/redis-server 1
初始化时指定的参数说明
Selected config:
Port           : 6379                         # 端口号
Config file    : /etc/redis/6379.conf         # 配置文件路径
Log file       : /var/log/redis_6379.log      #  日志文件路径
Data dir       : /var/lib/redis/6379          #  数据文件路径
Executable     : /usr/local/bin/redis-server  # 可执行文件路径
Cli Executable : /usr/local/bin/redis-cli     # 客户端命令行工具

此时关闭会话同步

Redis配置文件

在101(服务端)操作

修改监听地址

在安装完redis后,通过netstat命令可以看到redis目前监听的IP是127.0.0.1,也就是本地的IP,这样是无法远程管理redis的,所以我们这里修改一下redis监听的IP地址,需要修改redis的配置文件


在第70行的参数末尾添加本机的IP地址

[root@localhost ~]# vim /etc/redis/6379.conf
bind 127.0.0.1 192.168.10.101

除此之外,在第93行还可以自定义端口号,第137行可以指定守护进程的开启和关闭

第159行指定PID文件,第167行指定日志级别,第172行指定日志文件


cd进入存放服务文件的目录下,可以看到redis在安装时已经帮我们把服务脚本放到该目录下了

可以运行该脚本并且追加参数restart来重启redis,然后使用netstat命令可以查看到redis目前有了两个进程,其中就有监听本机IP的进程

[root@localhost ~]# cd /etc/init.d/
[root@localhost init.d]# ls
redis_6379
[root@localhost init.d]# ./redis_6379 restart
[root@localhost init.d]# netstat -anpt | grep redis
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      4919/redis-server 1 
tcp        0      0 192.168.10.101:6379     0.0.0.0:*               LISTEN      4919/redis-server 1

Redis远程连接

远程连接

在101(服务端)操作

在安装了redis的服务端之后,也同时安装了客户端。而redis不仅可以用客户端来远程连接,也可以在本地连接本地的服务端

[root@localhost ~]# redis-cli
[root@localhost ~]# redis-cli -h 192.168.10.101 -p 6379
127.0.0.1:6379>
127.0.0.1:6379> quit

在102(客户端)操作

也可以指定IP地址来远程连接

[root@localhost ~]# redis-cli -h 192.168.10.101 -p 6379

测试服务端状态

在102(客户端)操作

redis服务端通过乒乓机制来应答客户端的ping测试

[root@localhost ~]# redis-cli -h 192.168.10.101 -p 6379
127.0.0.1:6379> ping
PONG

redis-benchmark测试工具

在101(服务端)操作

测试请求性能

  • -h:指定服务器主机名;
  • -p:指定服务器端口;
  • -c:指定并发连接数;
  • -n:指定请求数
[root@localhost ~]# redis-benchmark -h 192.168.10.101 -p 6379 -c 100 -n 100000
99.64% <= 1 milliseconds   # 百分之99.94的请求小于1毫秒
100.00% <= 1 milliseconds
80971.66 requests per second  # 每秒能够接收这么多请求

测试读写性能

  • -d:以字节的形式指定 SET/GET 值的数据大小;
  • -q:强制退出 redis。仅显示 query/sec 值;
[root@localhost ~]# redis-benchmark -h 192.168.10.101 -p 6379 -q -d 100
SET: 86058.52 requests per second  # 每秒
GET: 85470.09 requests per second

set 与 lpush 操作性能

  • -t:仅运行以逗号分隔的测试命令列表;
[root@localhost ~]# redis-benchmark -h 192.168.10.101 -p 6379 -t set,lpush -n 100000 -q
SET: 86281.27 requests per second
LPUSH: 87183.96 requests per second

Redis常用命令

创建键值对

使用set指令,指定键,然后输入值

127.0.0.1:6379> set k1 1
OK
127.0.0.1:6379> set num1 11
OK
127.0.0.1:6379> set num2 22
OK
127.0.0.1:6379> set num3 33
OK

get

使用get指令,根据键(Key),获取值(Value)

127.0.0.1:6379> get k1
"1"

keys

使用keys *命令查询所有键

127.0.0.1:6379> keys *
1) "num2"
2) "counter:__rand_int__"
3) "num3"
4) "num1"
5) "k1"
6) "key:__rand_int__"
7) "myset:__rand_int__"
8) "mylist"

查看当前数据库中以num开头的键 

127.0.0.1:6379> keys num*
1) "num2"
2) "num3"
3) "num1"

查看当前数据库中以n开头后面包含任意3位字符的键

127.0.0.1:6379> keys n???
1) "num2"
2) "num3"
3) "num1"

exists

使用exists命令查询指定键是否存在,1表示该键存在,0表示该键不存在

127.0.0.1:6379> exists num1
(integer) 1
127.0.0.1:6379> exists num10
(integer) 0

del

del 命令可以删除当前数据库的指定 key

  • 显示1表示操作成功
  • 显示0表示操作失败
127.0.0.1:6379> del num3
(integer) 1
127.0.0.1:6379> del num3
(integer) 0

type

使用 type 命令可以获取 key 对应的 value 值类型

127.0.0.1:6379>type num1 
string

rename

rename 命令是对已有 key 进行重命名

在实际使用过程中,建议先用 exists 命令查看目标 key 是否存在,然后再决定是否执行 rename 命令,以避免覆盖重要数据

127.0.0.1:6379>keys num* 
1) "num1" 
2) "num2" 
127.0.0.1:6379>rename num2 num3 
OK
127.0.0.1:6379>keys num* 
1) "num1" 
2) "num3"

renamenx

renamenx 命令的作用是对已有 key 进行重命名,并检测新名是否存在。

使用renamenx 命令进行重命名时,如果目标 key 存在则不进行重命名。

127.0.0.1:6379>keys * 
(1) "num1"
127.0.0.1:6379>get num1 
"11" 
127.0.0.1:6379>renamenx num1 num2
(integer) 0 
127.0.0.1:6379>keys * 
(1) "num1" 
127.0.0.1:6379>get num1 
"11"

dbsize

dbsize 命令的作用是查看当前数据库中 key 的数目。

127.0.0.1:6379> dbsize 
(integer) 5

数据库操作

多数据库间切换

redis数据库时提供了16个数据库

使用select 10就进入到第10个数据库了

127.0.0.1:6379>select 10 
OK

多数据库间移动数据

Redis 的多数据库在一定程度上是相对独立的,例如在数据库 0 上面存放 num1 的数据,在其它 1-15 的数据库上是无法查看到的

127.0.0.1:6379>move num1 1     # 将当前数据库中的num1移动到数据库1中 
(integer) 1 
127.0.0.1:6379>select 1     # 切换至目标数据库 1 
OK
127.0.0.1:6379[1]>get k1     # 查看被移动数据 
"11"

清除数据库内数据

清空当前数据库数据,使用 FLUSHDB

命令实现;清空所有数据库的数据,使用 FLUSHALL 命令实现

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> flushall
OK

Redis持久化

概念

  • Redis是运行中内存中,内存中的数据断电丢失
  • 为了能够重用Redis数据,或者防止系统故障需要将Redis中的数据写入到磁盘中,也就是持久化

分类

  • RDB方式:创建快照的方式获取某一时刻Redis中所有数据的副本(默认使用RDB进行持久化)
  • AOF方式:将执行的写命令写到文件的末尾,以日志的方式来记录数据的变化

对于静态数据的持久化叫做备份,对于动态数据的持久化叫做快照

RDB
  • Redis的默认持久化方式
  • 默认文件名为dump.rdb
  • 触发条件有手动触发和自动触发
  • Redis加载RDB恢复数据远远快于AOF方式
AOF
  • Redis默认不开启
  • 弥补RDB的不足(数据的不一致性)
  • 采用日志的形式来记录每个写入操作,并追加到文件中
  • Redis重启后会根据日志文件的内容将写入操作从前到后执行一次以完成数据的恢复工作

如果同时开启RDB和AOF功能,Redis重启后会先读取RDB的快照文件,然后再读取日志的信息进行操作,也就是RDB的数据被AOF的数据覆盖了

二者选择的标准

牺牲一些性能,换取更高的缓存一致性(AOF)

写操作频繁的时候,不启用备份来换取更高的性能,待手动运行 save 的时候,再做备份(RDB)


Redis 持久化配置

RDB

打开在redis的配置文件,可以定义RDB持久化的设置

在219行到221行定义了

[root@localhost ~]# vim /etc/redis/6379.conf
save 900 1  # 在900秒(15分钟)之后,如果至少有1个key发生变化,则生成快照
save 300 10 # 在300秒(5分钟)之后,如果至少有 10 个key发生变化,则生成快照
save 60 10000  # 在60秒(1分钟)之后,如果至少有10000个key 发生变化,则生成快照

在第254行可以定义快照文件的文件名

dbfilename dump.rdb

第264行,可以定义RDB生存文件的路径

dir /var/lib/redis/6379

第242行定义是否进行压缩

rdbcompression yes

AOF

第673行,修改AOF是开启还是关闭,这里我们开启

appendonly yes

第677行,指定了AOF生成的文件名

appendfilename "appendonly.aof"

在702 ~ 704行,指定了AOF持久化的方式

# appendfsync always  # 同步持久化,每次发送数据变化会立刻写入硬盘
appendfsync everysec  # 默认值,每秒异步记录一次
# appendfsync no      # 不同步

AOF重写

为了解决 AOF 文件体积不断增大的问题,用户可以向 Redis 发送 BGREWRITEAOF命令。BGREWRITEAOF 命令会通过移除 AOF 文件中的冗余命令来重写(rewrite)AOF文件,使 AOF 文件的体积尽可能地变小。

[root@localhost ~]# redis-cli
127.0.0.1:6379> bgrewriteaof
Background append only file rewriting started

性能管理

查看内存信息

127.0.0.1:6379> info memory

回收策略

设置key的过期时间,这里设置过期时间为5秒。5秒后该键对应的值就为空

127.0.0.1:6379> set test 123
OK
127.0.0.1:6379> expire test 5
(integer) 1
127.0.0.1:6379> get test
"123"
127.0.0.1:6379> get test
(nil)

相关文章:

Redis:概念、部署、配置、优化

目录 关系型数据库与非关系型数据库 关系型数据库 非关系型数据库 非关系型数据库存在的原因 Redis 概念 优点 Redis部署流程 初步设置 安装 初始化 初始化时指定的参数说明 Redis配置文件 修改监听地址 Redis远程连接 远程连接 测试服务端状态 redis-benchm…...

华为OD-D卷找座位

在一个大型体育场内举办了一场大型活动&#xff0c;由于疫情防控的需要&#xff0c;要求每位观众的必须间隔至少一个空位才允许落座。现在给出一排观众座位分布图&#xff0c;座位中存在已落座的观众&#xff0c;请计算出&#xff0c;在不移动现有观众座位的情况下&#xff0c;…...

Go sdk下载和配置环境变量

本文目录 SDK下载环境变量配置测试 SDK下载 下载地址&#xff1a;https://golang.google.cn/dl/ 更多版本&#xff0c;找到1.9.2 我是win10 64位的&#xff0c;我找到这个下载 下载之后解压&#xff0c;可以看到bin文件夹。 环境变量配置 我的电脑 -> 属性 -> 高级…...

qt的项目结构

目录 创建新的项目 第一个hell0程序&#xff0c;qt的项目结构 main函数 Widget头文件: pro文件 命名规范 QtCreator 常用快捷键 Qt里边绝大部分的类都是继承自QObject是一个顶层类 父子关系 Qt坐标系 QT常用API函数 对象树 信号和槽机制 自定义信号和槽 自定义信号…...

【NLP】文本特征处理:n-gram特征和文本长度规范

文章目录 1、本章目标2、n-gram特征2.1、概念2.2、举个例子2.3、代码 3、文本长度规范及其作用4、小结 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应用开发、数据结构和算法…...

ESP32人脸识别开发 ---partitions.csv配置的一些说明(五)

配置的文件在这个位置 esp-who/examples/esp32-s3-eye/partitions.csv factory, app, factory, 0x010000, 4000K, model, data, spiffs, , 3900K, &#xff08;这个是语音相关的&#xff09; nvs, data, nvs, , 16K, fr, data, ,…...

【学习笔记】Matlab和python双语言的学习(图论最短路径)

文章目录 前言一、图论基本概念示例 二、代码实现----Matlab三、代码实现----python总结 前言 通过模型算法&#xff0c;熟练对Matlab和python的应用。 学习视频链接&#xff1a; https://www.bilibili.com/video/BV1EK41187QF?p36&vd_source67471d3a1b4f517b7a7964093e6…...

vue.config.js 配置 devserve 配置

在 Vue CLI 项目中&#xff0c;devServer 配置用于设置开发服务器的行为。这包括了开发服务器的端口、主机名、是否开启 HTTPS、自动打开浏览器等设置&#xff0c;以及配置代理规则来解决跨域问题。 devServer 配置详解(version > 4.0.0) host: 设置开发服务器的主机地址&a…...

不入耳耳机什么牌子性价比高?五大年度必选款揭秘

和传统的入耳式耳机相比&#xff0c;开放式耳机采用的是不深入耳道的设计&#xff0c;佩戴舒适度更高&#xff0c;卫生健康&#xff0c;安全性也更高。同时音质表现也更加有空间感。想要体验开放式耳机带来的便利&#xff0c;就需要做好选购攻略&#xff0c;不入耳耳机什么牌子…...

SQL Zoo 6.The JOIN operation

以下数据均来自SQL Zoo 1.Modify it to show the matchid and player name for all goals scored by Germany. To identify German players, check for: teamid GER.(它以显示德国所有进球的比赛和球员名字,识别德国球员) SELECT matchid,player FROM goal where teamid GE…...

视频教程:Vue3移动端抽屉弹层组件实战

本教程演示了vue3的composition api实现的移动端h5抽屉弹层组件&#xff0c;录屏讲解包含了功能演示和具体的源码实现。 笔者相关教程&#xff1a; 使用tailwindcss轻松实现移动端rem适配Vue3.4双向绑定新特性&#xff1a;defineModel好用爱用 学习要点&#xff1a; 自定义…...

CSS 的 BFC(块级格式化上下文)

BFC是Block Formatting Context&#xff08;块级格式化上下文&#xff09;的缩写&#xff0c;是CSS中一个概念&#xff0c;用于描述页面上如何对元素进行布局。 BFC是一个独立的容器&#xff0c;它内部的元素不会受到外部容器的影响&#xff0c;同时它也会影响其内部元素的表现…...

【2023年】云计算金砖牛刀小试2

A场次题目:Openstack 平台部署与运维 control172.17.31.10compute172.17.31.20 compute任务1 私有云平台环境初始化 1.初始化操作系统 使用提供的用户名密码,登录竞赛云平台。根据表 1 中的 IP 地址规划,设置各服务器节点的 IP 地址,确保网络正常通信,设置控制节点主机名…...

python--将mysql建表语句转换成hive建表语句

1.代码 import json import sys import pymysqldef queryDataBase(tablename):# 连接数据库并查询列信息conn pymysql.connect(userroot, password123456, hosthadoop11)cursor conn.cursor()cursor.execute("SELECT column_name, data_type FROM information_schema.C…...

异步调用实践:Async,Future, TaskExecutor、EventListener

1. 异步调用概述 异步调用允许一个方法调用在不被当前线程阻塞的情况下继续执行&#xff0c;而调用者可以继续执行其他任务&#xff0c;直到异步操作完成。 在Spring Boot中&#xff0c;异步调用常用于提高应用的响应性和吞吐量&#xff0c;尤其是在处理长时间运行的任务时&a…...

Flask 异常处理

Flask 异常处理 使用 app.errorhandler 装饰器使用 app.handle_exception 装饰器使用 register_error_handler调试模式总结 在 Flask 应用中&#xff0c;异常处理是一个非常重要的部分&#xff0c;它可以帮助你管理运行时错误&#xff0c;提供友好的错误页面&#xff0c;以及记…...

【海思SS626 | 内存管理】海思芯片的OS内存、MMZ内存设置

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…...

linux crontab没有按照规则执行排查

配置了cron规则&#xff0c;但是一段时间后任务没有按预期执行&#xff0c;记录一次修复过程 检查crond服务 systemctl status crond规则正常 crontab -l脚本有执行权限 查看日志 第一种&#xff1a;journalctl journalctl -u crond | grep 03:00 -C 3-u 指定crond.serv…...

Cloudflare的D1使用技巧

总文档&#xff1a;https://developers.cloudflare.com/workers/wrangler/commands/#d1查询某个数据库中哪些命令占用资源最大&#xff1a; To find top 10 queries by execution count: npx wrangler d1 insights <database_name> --sort-typesum --sort-bycount --co…...

解决端口号被占用问题

第一种&#xff1a; 最简单有效的方法&#xff0c;重启一下电脑&#xff0c;占用此端口的程序就会释放端口。 第二种&#xff1a; 使用命令找到占用端口的程序&#xff0c;把它关闭。 1、打开运行窗口输入&#xff1a;CMD &#xff0c;进入命令窗口。 2、输入&#xff1a;n…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...