redis 5.0.x 部署

PS:对于使用者来说,Redis5.0和4.0都是一样的,但是redis 4.0的集群部署需要额外安装ruby的东西,5.0中则集成到了redis-cli,部署起来更方便

1.1 安装Redis

本章基于CentOS 7.9.2009编写而成,由于Linux发行版众多,安装过程可能有些许不同,仅供参考

1、下载Redis源码:wget http://download.redis.io/releases/redis-5.0.13.tar.gz

2、解压:tar xzf redis-5.0.13.tar.gz

3、cd redis-5.0.13/deps/

4、make hiredis lua jemalloc linenoise(编译依赖的库)

5、cd ..

6、编译:make -j 4(4表示使用4核编译,默认是1核,请根据实际情况修改参数)

1.2 部署单机版Redis

1、使用cd命令切换目录到Redis主目录下

2、创建一个文件夹用于存放单机版的数据和配置:mkdir single

3、拷贝一份配置文件到single文件夹:cp redis.conf single/redis.conf

4、切换到single目录:cd single/

5、使用你熟悉的编辑器修改redis.conf文件

第69行:bind 127.0.0.1(注释掉)

 

 第88行:protected-mode no

 

 第92行:port 6379(端口号)

 

 第136行:daemonize yes(后台运行)

 

 第158行:pidfile /var/run/redis_6379.pid(后边的数字改成跟端口号一致)

 

 #注意:${redis.home}替换成redis的安装目录,比如/home/iceberg/Program/redis-5.0.13

 第171行:logfile ${redis.home}/single/redis.log(日志路径)

 

 第218行:RDB持久化配置,全部注释掉并加上save ""表示关闭RDB持久化

 #save 900 1(每900秒内有1个key修改则进行持久化)

 #save 300 10(每300秒内有10个key修改则进行持久化)

 #save 60 10000(每60秒内有10000个key修改则进行持久化)

 save ""

 

 #注意:${redis.home}替换成redis的安装目录,比如/home/iceberg/Program/redis-5.0.13

 第263行:dir ${redis.home}/single/

 

 第500行:requirepass foobared(设置redis的密码,注释掉表示不需要)

 

 #注意:如果之前redis已经运行过,需要删除RDB文件dump.rdb!!!具体路径就是第263行的dir目录

 第672行:appendonly yes(开启AOF持久化)

6、在single目录下新建一个文件:touch start.sh并加入以下内容

 #!/bin/sh

 #注意:这个目录是指你实际的redis安装目录,比如/home/iceberg/Program/redis-5.0.13

 cd /home/iceberg/Program/redis-5.0.13

 src/redis-server single/redis.conf &

授予其可执行权限chmod 777 start.sh,运行即可启动

7、关闭redis

不要使用Kill -9的方法强制关闭Redis,不仅是Redis,任何程序都不应该使用这个方式关闭!这会使得程序预设的清理代码不执行!!!

在single目录下新建一个文件:touch stop.sh并加入以下内容

 #!/bin/sh

 #注意:这个目录是指你实际的redis安装目录,比如/home/iceberg/Program/redis-5.0.13

 cd /home/iceberg/Program/redis-5.0.13

 src/redis-cli -p 6379 shutdown

 #如果配置了密码要加上-a 你的密码

 #src/redis-cli -p 6379 -a 123456 shutdown

8、redisson配置(redis客户端配置)

(1)包含密码

{

    "singleServerConfig": {

        "address""redis://127.0.0.1:6379",

        "timeout"5000,

        "password""123456",

        "pingConnectionInterval"2000

    },

    "codec": {

        "class""com.fingard.luna.framework.cache.redis.component.ExtendJsonJacksonCodec"

    },

    "transportMode""NIO"

}

(2)不包含密码

{

    "singleServerConfig": {

        "address""redis://127.0.0.1:6379",

        "timeout": 5000,

        "pingConnectionInterval": 2000

    },

    "codec": {

        "class""com.fingard.luna.framework.cache.redis.component.ExtendJsonJacksonCodec"

    },

    "transportMode""NIO"

}

1.3 部署主从版Redis

1、使用cd命令切换目录到Redis主目录下

2、创建一个文件夹用于存放主从版的数据和配置:mkdir replication

3、进入目录:cd replication

4、创建两个文件夹:mkdir master slave

5、切换到主目录,把配置文件分别拷贝到master和slave,cp redis.conf replication/master/redis.conf、cp redis.conf replication/slave/redis.conf

6、使用你熟悉的编辑器修改redis.conf文件

(1)主redis配置

 第69行:bind 127.0.0.1(注释掉)

 

 第88行:protected-mode no

 

 第92行:port 6379(端口号,主从的端口号必须不一样)

 

 第136行:daemonize yes(后台运行)

 

 第158行:pidfile /var/run/redis_6379.pid(后边的数字改成跟端口号一致)

 

 #注意:${redis.home}替换成redis的安装目录,比如/home/iceberg/Program/redis-5.0.13

 第171行:logfile ${redis.home}/replication/master/redis.log

 

 #注意:${redis.home}替换成redis的安装目录,比如/home/iceberg/Program/redis-5.0.13

 第263行:dir ${redis.home}/replication/master/

 

 #如何设置密码的话,下边两个配置必须同时存在或同时注释掉,且密码必须相同

 第288行:masterauth <master-password>(设置redis的密码,注释掉表示不需要)

 第500行:requirepass foobared(设置redis的密码,注释掉表示不需要)

 

 #注意:如果之前redis已经运行过,需要删除RDB文件dump.rdb!!!具体路径就是第263行的dir目录

 第672行:appendonly yes(开启AOF持久化)

(2)从redis配置

 第69行:bind 127.0.0.1(注释掉)

 

 第88行:protected-mode no

 

 第92行:port 6380(端口号,主从的端口号必须不一样)

 

 第136行:daemonize yes(后台运行)

 

 第158行:pidfile /var/run/redis_6380.pid(后边的数字改成跟端口号一致)

 

 #注意:${redis.home}替换成redis的安装目录,比如/home/iceberg/Program/redis-5.0.13

 第171行:logfile ${redis.home}/replication/slave/redis.log

 

 #注意:${redis.home}替换成redis的安装目录,比如/home/iceberg/Program/redis-5.0.13

 第263行:dir ${redis.home}/replication/slave/

 

 第281行:slaveof <masterip> <masterport>(配置主节点的ip和端口号)

 

 #如何设置密码的话,下边两个配置必须同时存在或同时注释掉,且密码必须相同

 第288行:masterauth <master-password>(设置redis的密码,注释掉表示不需要)

 第500行:requirepass foobared(设置redis的密码,注释掉表示不需要)

 

 #注意:如果之前redis已经运行过,需要删除RDB文件dump.rdb!!!具体路径就是第263行的dir目录

 第672行:appendonly yes(开启AOF持久化)

7、启动和关闭脚本与单机版类似,把目录改成主从对应的目录,配置对端口号即可

8、配置

(1)包含密码

{

   "masterSlaveServersConfig":{

      "readMode":"MASTER",

      "slaveAddresses":[

         "redis://127.0.0.1:6381",

         "redis://127.0.0.1:6380"

      ],

      "masterAddress""redis://127.0.0.1:6379",

      "timeout"5000,

      "password""123456",

      "pingConnectionInterval"2000

   },

    "codec": {

        "class""com.fingard.luna.framework.cache.redis.component.ExtendJsonJacksonCodec"

    },

   "transportMode":"NIO"

}

(2)不包含密码

{

   "masterSlaveServersConfig":{

      "readMode":"MASTER",

      "slaveAddresses":[

         "redis://127.0.0.1:6381",

         "redis://127.0.0.1:6380"

      ],

      "masterAddress""redis://127.0.0.1:6379",

      "timeout"5000,

      "pingConnectionInterval"2000

   },

    "codec": {

        "class""com.fingard.luna.framework.cache.redis.component.ExtendJsonJacksonCodec"

    },

   "transportMode":"NIO"

}

1.4 部署哨兵版Redis

1、使用cd命令切换目录到Redis主目录下

2、创建一个文件夹用于存放哨兵版的数据和配置:mkdir sentinel

3、首先配置好主从节点,并启动(主从的相关配置请参考第三节)

4、创建三个文件夹:mkdir sentinel1 sentinel2 sentinel3

5、复制sentinel.conf到三个文件夹中(注意这里的配置文件不是redis.conf!)

6、sentinel.conf需要修改的地方如下(注意这里的配置文件不是redis.conf!)

(1)sentinel1

#取消注释,允许远程连接

 第17行:protected-mode no

 

 第21行:port 26379(端口号)

 

 #注意:${redis.home}替换成redis的安装目录,比如/home/iceberg/Program/redis-5.0.13

 第50行:dir ${redis.home}/replication/sentinel1/(数据存储目录)

 

 第69行:sentinel monitor mymaster 10.60.44.87 6379 2(配置哨兵监控哪个主节点,mymaster是主节点的别名,2表示主从切换至少需要2台哨兵节点同意,一般为n/2+1,n表示哨兵节点数)

 

 #配置密码,注释掉表示不需要密码

 第71行:sentinel auth-pass mymaster 123456

 

 #额外增加配置

 #后台运行该redis节点

 daemonize yes

 #日志存储路径

 logfile "${redis.home}/sentinel/sentinel1/redis.log"

(2)sentinel2

 #取消注释,允许远程连接

 第17行:protected-mode no

 

 第21行:port 26380(端口号)

 

 #注意:${redis.home}替换成redis的安装目录,比如/home/iceberg/Program/redis-5.0.13

 第50行:dir ${redis.home}/replication/sentinel2/(数据存储目录)

 

 第69行:sentinel monitor mymaster 10.60.44.87 6379 2(配置哨兵监控哪个主节点,mymaster是主节点的别名,2表示主从切换至少需要2台哨兵节点同意,一般为n/2+1,n表示哨兵节点数)

 

 #配置密码,注释掉表示不需要密码

 第71行:sentinel auth-pass mymaster 123456

 

 #额外增加配置

 #后台运行该redis节点

 daemonize yes

 #日志存储路径,${redis.home}替换成redis的安装目录,比如/home/iceberg/Program/redis-5.0.13

 logfile "${redis.home}/replication/sentinel2/redis.log"

(3)sentinel3

 #取消注释,允许远程连接

 第17行:protected-mode no

 

 第21行:port 26381(端口号)

 

 #注意:${redis.home}替换成redis的安装目录,比如/home/iceberg/Program/redis-5.0.13

 第50行:dir ${redis.home}/replication/sentinel3/(数据存储目录)

 

 第69行:sentinel monitor mymaster 10.60.44.87 6379 2(配置哨兵监控哪个主节点,mymaster是主节点的别名,2表示主从切换至少需要2台哨兵节点同意,一般为n/2+1,n表示哨兵节点数)

 

 #配置密码,注释掉表示不需要密码

 第71行:sentinel auth-pass mymaster 123456

 

 #额外增加配置

 #后台运行该redis节点

 daemonize yes

 #日志存储路径,${redis.home}替换成redis的安装目录,比如/home/iceberg/Program/redis-5.0.13

 logfile "${redis.home}/replication/sentinel3/redis.log"

7、在sentinel1文件夹中新建一个文件,touch start.sh,填入以下内容

 #!/bin/sh

 #注意:这个目录是指你实际的redis安装目录

 cd /home/iceberg/Program/redis-5.0.13

 src/redis-sentinel sentinel/sentinel1/sentinel.conf &

授予其可执行权限chmod 777 start.sh,运行即可启动

其他哨兵把sentinel1改成sentinel2或sentinel3即可

8、关闭Redis与单机版类似,把目录改成哨兵对应的目录,配置对端口号即可

9、配置

(1)包含密码的配置

{

   "sentinelServersConfig":{

      "readMode":"MASTER",

      "sentinelAddresses":[

         "redis://127.0.0.1:26379",

         "redis://127.0.0.1:26389"

      ],

      "masterName":"mymaster",

      "password""123456",

      "pingConnectionInterval"2000

   },

   "codec": {

        "class""com.fingard.luna.framework.cache.redis.component.ExtendJsonJacksonCodec"

    },

   "transportMode":"NIO"

}

(2)不包含密码的配置

{

   "sentinelServersConfig":{

      "readMode":"MASTER",

      "sentinelAddresses":[

         "redis://127.0.0.1:26379",

         "redis://127.0.0.1:26389"

      ],

      "masterName":"mymaster",

      "pingConnectionInterval"2000

   },

   "codec": {

        "class""com.fingard.luna.framework.cache.redis.component.ExtendJsonJacksonCodec"

    },

   "transportMode":"NIO"

}

1.5 配置集群版Redis

1、使用cd命令切换目录到Redis主目录下

2、创建一个文件夹用于存放集群版的数据和配置:mkdir cluster

3、新建六个文件夹(Redis集群最少三主三从),mkdir master1 master2 master3 slave1 slave2 slave3 ,并复制redis.conf文件进去(这里假设的是一台机器的情况,如果你是用六台机器部署,就建一个文件夹就好)

5、集群相关配置如下

(1)master1

第69行:bind 127.0.0.1(注释掉)

 

 第88行:protected-mode no

 

 第92行:port 6381(端口号)

 

 第136行:daemonize yes(后台运行)

 

 第158行:pidfile /var/run/redis_6381.pid(后边的数字改成跟端口号一致)

 

 #注意:${redis.home}替换成redis的安装目录,比如/home/iceberg/Program/redis-5.0.13

 第171行:logfile ${redis.home}/cluster/master1/redis.log

 

 #注意:${redis.home}替换成redis的安装目录,比如/home/iceberg/Program/redis-5.0.13

 第263行:dir ${redis.home}/cluster/master1/

 

 #如何设置密码的话,下边两个配置必须同时存在或同时注释掉,且密码必须相同

 第288行:masterauth <master-password>(设置redis的密码,注释掉表示不需要)

 第500行:requirepass foobared(设置redis的密码,注释掉表示不需要)

 

 #注意:如果之前redis已经运行过,需要删除RDB文件dump.rdb!!!具体路径就是第263行的dir目录

 第672行:appendonly yes(开启AOF持久化)

 

 # 开启集群模式

 第814行:cluster-enable yes

 

 #集群内部配置文件

 第822行:cluster-config-file “nodes-6381.conf”

(2)master2

第69行:bind 127.0.0.1(注释掉)

 

 第88行:protected-mode no

 

 第92行:port 6382(端口号,主从的端口号必须不一样)

 

 第136行:daemonize yes(后台运行)

 

 第158行:pidfile /var/run/redis_6382.pid(后边的数字改成跟端口号一致)

 

 #注意:${redis.home}替换成redis的安装目录

 第171行:logfile ${redis.home}/cluster/master2/redis.log

 

 #注意:${redis.home}替换成redis的安装目录

 第263行:dir ${redis.home}/cluster/master2/

 

 #下边两个配置必须同时存在,且密码必须相同

 第288行:masterauth <master-password>(设置redis的密码,注释掉表示不需要)

 第500行:requirepass foobared(设置redis的密码,注释掉表示不需要)

 

 #注意:如果之前redis已经运行过,需要删除RDB文件dump.rdb!!!具体路径就是第263行的dir目录

 第672行:appendonly yes(开启AOF持久化)

 

 # 开启集群模式

 第814行:cluster-enable yes

 

 #集群内部配置文件

 第822行:cluster-config-file “nodes-6382.conf”

(3)master3

 第69行:bind 127.0.0.1(注释掉)

 

 第88行:protected-mode no

 

 第92行:port 6383(端口号,主从的端口号必须不一样)

 

 第136行:daemonize yes(后台运行)

 

 第158行:pidfile /var/run/redis_6383.pid(后边的数字改成跟端口号一致)

 

 #注意:${redis.home}替换成redis的安装目录

 第171行:logfile ${redis.home}/cluster/master3/redis.log

 

 第218行:RDB持久化配置,全部注释掉并加上save ""表示关闭RDB持久化

 #save 900 1(每900秒内有1个key修改则进行持久化)

 #save 300 10(每300秒内有10个key修改则进行持久化)

 #save 60 10000(每60秒内有10000个key修改则进行持久化)

 save ""

 

 #注意:${redis.home}替换成redis的安装目录

 第263行:dir ${redis.home}/cluster/master3/

 

 #下边两个配置必须同时存在,且密码必须相同

 第288行:masterauth <master-password>(设置redis的密码,注释掉表示不需要)

 第500行:requirepass foobared(设置redis的密码,注释掉表示不需要)

 

 #注意:如果之前redis已经运行过,需要删除RDB文件dump.rdb!!!具体路径就是第263行的dir目录

 第672行:appendonly yes(开启AOF持久化)

 

 # 开启集群模式

 第814行:cluster-enable yes

 

 #集群内部配置文件

 第822行:cluster-config-file “nodes-6383.conf”

(4)slave1

第69行:bind 127.0.0.1(注释掉)

第88行:protected-mode no

第92行:port 6391(端口号,主从的端口号必须不一样)

第136行:daemonize yes(后台运行)

第158行:pidfile /var/run/redis_6391.pid(后边的数字改成跟端口号一致)

#注意:${redis.home}替换成redis的安装目录

第171行:logfile ${redis.home}/cluster/slave1/redis.log

#注意:${redis.home}替换成redis的安装目录

第263行:dir ${redis.home}/cluster/slave1/

#下边两个配置必须同时存在,且密码必须相同

第288行:masterauth <master-password>(设置redis的密码,注释掉表示不需要)

第500行:requirepass foobared(设置redis的密码,注释掉表示不需要)

#注意:如果之前redis已经运行过,需要删除RDB文件dump.rdb!!!具体路径就是第263行的dir目录

第672行:appendonly yes(开启AOF持久化)

# 开启集群模式

第814行:cluster-enable yes

#集群内部配置文件

第822行:cluster-config-file “nodes-6391.conf”

(5)slave2

第69行:bind 127.0.0.1(注释掉)

第88行:protected-mode no

第92行:port 6392(端口号,主从的端口号必须不一样)

第136行:daemonize yes(后台运行)

第158行:pidfile /var/run/redis_6392.pid(后边的数字改成跟端口号一致)

#注意:${redis.home}替换成redis的安装目录

第171行:logfile ${redis.home}/cluster/slave2/redis.log

#注意:${redis.home}替换成redis的安装目录

第263行:dir ${redis.home}/cluster/slave2/

#下边两个配置必须同时存在,且密码必须相同

第288行:masterauth <master-password>(设置redis的密码,注释掉表示不需要)

第500行:requirepass foobared(设置redis的密码,注释掉表示不需要)

#注意:如果之前redis已经运行过,需要删除RDB文件dump.rdb!!!具体路径就是第263行的dir目录

第672行:appendonly yes(开启AOF持久化)

# 开启集群模式

第814行:cluster-enable yes

#集群内部配置文件

第822行:cluster-config-file “nodes-6392.conf”

(6)slave3

第69行:bind 127.0.0.1(注释掉)

第88行:protected-mode no

第92行:port 6393(端口号,主从的端口号必须不一样)

第136行:daemonize yes(后台运行)

第158行:pidfile /var/run/redis_6393.pid(后边的数字改成跟端口号一致)

#注意:${redis.home}替换成redis的安装目录

第171行:logfile ${redis.home}/cluster/slave3/redis.log

#注意:${redis.home}替换成redis的安装目录

第263行:dir ${redis.home}/cluster/slave3/

#下边两个配置必须同时存在,且密码必须相同

第288行:masterauth <master-password>(设置redis的密码,注释掉表示不需要)

第500行:requirepass foobared(设置redis的密码,注释掉表示不需要)

#注意:如果之前redis已经运行过,需要删除RDB文件dump.rdb!!!具体路径就是第263行的dir目录

第672行:appendonly yes(开启AOF持久化)

# 开启集群模式

第814行:cluster-enable yes

#集群内部配置文件

第822行:cluster-config-file “nodes-6393.conf”

6、使用单机版的启动脚本将启动上述六个redis实例

7、切换到redis主目录下,执行

#通过-a指定密码

src/redis-cli -a 123456 --cluster create --cluster-replicas 0 10.60.52.134:6381 10.60.52.134:6382 10.60.52.134:6383

输入yes,可以看到如下提示

发现所有16384个槽都分配成功,集群创建完成。

不过此时只有三个主节点,还需要设置一下从节点,这里要记录一下ID和ip:port的对应关系,不要清空了,下一步有用

8、手动添加从节点

我们假设你想要的对应关系是6381(主)-6391(从)、6382(主)-6392(从)、6383(主)-6393(从)

src/redis-cli -a 123456 --cluster add-node --cluster-slave --cluster-master-id cdd3d8faba1cb6a26faba5c2ffcd274b638aa159 10.60.52.134:6391 10.60.52.134:6381

src/redis-cli -a 123456 --cluster add-node --cluster-slave --cluster-master-id faa8847464a78ae58b95c0b2ea895250bd023864 10.60.52.134:6392 10.60.52.134:6382

src/redis-cli -a 123456 --cluster add-node --cluster-slave --cluster-master-id 0b4a8d999b04423a99dfa8d099e77534ecb925a0 10.60.52.134:6393 10.60.52.134:6383

依次执行命令,将从节点添加到集群中,如下图所示:

9、集群完整性检查

集群完整性指所有的槽都必须分配到存活的主节点上,只要16384个槽有一个没有分配给节点则表示集群不完整。我们可以使用check命令检测任意一个节点即可完成检查,输入:

src/redis-cli -a 123456 --cluster check 10.60.52.134:6381

可以看到3主3从,且16384个槽都分配完毕,表示集群完整,如下图所示

10、配置

(1)包含密码的配置

{

    "clusterServersConfig": {

        "readMode""MASTER",

        "nodeAddresses": [

            "redis://10.60.44.57:6371",

            "redis://10.60.44.57:6372",

            "redis://10.60.44.57:6373"

        ],

        "password""123456",

        "pingConnectionInterval"2000

    },

    "codec": {

        "class""com.fingard.luna.framework.cache.redis.component.ExtendJsonJacksonCodec"

    },

    "transportMode""NIO"

}

(2)不包含密码的配置

{

    "clusterServersConfig": {

        "readMode""MASTER",

        "nodeAddresses": [

            "redis://10.60.44.57:6371",

            "redis://10.60.44.57:6372",

            "redis://10.60.44.57:6373"

        ].

        "pingConnectionInterval"2000

    },

    "codec": {

        "class""com.fingard.luna.framework.cache.redis.component.ExtendJsonJacksonCodec"

    },

    "transportMode""NIO"

}

为了方便修改,以上是展开的配置,但是配置在apollo的时候需要压缩一下,可以搜索任意的在线JSON格式化网站进行压缩

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/72622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络知识点】三次握手和四次挥手

文章目录 一、三次握手二、四次挥手 一、三次握手 三次握手的原理如下&#xff1a; 客户端向服务器发送一个SYN&#xff08;同步&#xff09;包&#xff0c;其中包含一个随机生成的初始序列号&#xff08;ISN&#xff09;。 服务器收到SYN包后&#xff0c;会发送一个SYNACK&…

QT设计一个小闹钟

设置一个闹钟&#xff0c;左侧窗口显示当前时间&#xff0c;右侧设置时间&#xff0c;以及控制闹钟的开关&#xff0c;下方显示闹钟响时的提示语。当按启动按钮时&#xff0c;设置时间与闹钟提示语均不可再改变。当点击停止时&#xff0c;关闭闹钟并重新启用设置时间与闹钟提示…

微服务-kubernetes安装

文章目录 一、前言二、kubernetes2.1、Kubernetes (K8S) 是什么2.1.1、主要特性&#xff1a;2.2.2、传统部署方式&#xff1a;2.2.3、虚拟机部署2.2.4容器部署2.2.5什么时候需要 Kubernetes2.2.6、Kubernetes 集群架构 三、kubernetes安装3.1、主节点需要组件3.1.1、设置对应主…

【Eclipse】Project interpreter not specified 新建项目时,错误提示,已解决

目录 0.环境 1&#xff09;问题截图&#xff1a; 2&#xff09;错误发生原因&#xff1a; 1.解决思路 2.具体步骤 0.环境 windows 11 64位&#xff0c;Eclipse 2021-06 1&#xff09;问题截图&#xff1a; 2&#xff09;错误发生原因&#xff1a; 由于我手欠&#xff0c;将…

【uniapp】关于小程序输入框聚焦、失焦(输入法占位)的问题

聊天小程序&#xff0c;界面带有输入框&#xff0c;当输入框中聚焦后&#xff0c;底部自动谈起输入法。此时输入框也要随之出现在输入法上方。默认情况下&#xff0c;输入框此时会被输入法覆盖掉。 以下是亲自实践&#xff0c;解决这个问题的方法&#xff1a; 一、小程序大概…

HTTPS 之fiddler抓包--jmeter请求

一、浅谈HTTPS 我们都知道HTTP并非是安全传输&#xff0c;在HTTPS基础上使用SSL协议进行加密构成的HTTPS协议是相对安全的。目前越来越多的企业选择使用HTTPS协议与用户进行通信&#xff0c;如百度、谷歌等。HTTPS在传输数据之前需要客户端&#xff08;浏览器&#xff09;与服…

ASP.NET Core 中的两种 Web API

ASP.NET Core 有两种创建 RESTful Web API 的方式&#xff1a; 基于 Controller&#xff0c;使用完整的基于ControllerBase的基类定义接口endpoints。基于 Minimal APIs&#xff0c;使用Lambda表达式定义接口 endpoints。 基于 Controller 的 Web API 可以使用构造函数注入&a…

2023-09-04力扣每日一题

链接&#xff1a; 449. 序列化和反序列化二叉搜索树 题意&#xff1a; 把一个二叉搜索树变成字符串&#xff0c;还要能变回来 解&#xff1a; 和剑指 Offer 37. 序列化二叉树差不多&#xff0c;那个是二叉树的序列化/反序列化-Hard 直接CV了&#xff0c;懒: ( 如果是二叉…

在 Spring 4.3.9下升级 Velocity 1.7.x to Velocity 2.0.x 出现的问题

1: Spring 的 spring-context-support 报错 java.lang.NoClassDefFoundError: org/apache/velocity/runtime/log/CommonsLogLogChute 等待 Spring 升级支持 Velocity 2.0.x 或自己改 Spring 的源码 velocity整个初始化日志过程&#xff1a; new RuntimeInstance()&#xff0c…

Codeforces Round 895 (Div. 3) C. Non-coprime Split

找到数字 x x x的因子 k k k&#xff0c;构造出 k , x − k k,x-k k,x−k即可。 因为 x C 1 ∗ k x C_1 * k xC1​∗k , x − k ( C 1 − 1 ) ∗ k x - k (C_1 - 1) * k x−k(C1​−1)∗k&#xff0c;保证其最小公因数不为 1 1 1如果没有因子&#xff0c;即这个数字是质数&…

【SpringMVC】RESTful风格CRUD实现

目录 一、REST简介 1.1 什么是REST? 1.2 REST风格的优点 1.3 请求方式 二、构建项目 ⭐思路分析 2.1 环境准备 2.1.1 导入相关pom依赖 2.1.2 jdbc.properties&#xff1a;配置文件 2.1.3 配置代码生成器 generatorConfig.xml 2.1.4 spring与mybatis整合的配置文件 s…

三门问题讨论

三门问题讨论 三门问题第一种第二种 三门问题 三门问题&#xff08;Monty Hall problem&#xff09;亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论&#xff0c;大致出自美国的电视游戏节目Let’s Make a Deal。问题名字来自该节目的主持人蒙提霍尔&#xff08;Monty Hall&…

LeetCode(力扣)46. 全排列Python

LeetCode46. 全排列 题目链接代码 题目链接 https://leetcode.cn/problems/permutations/ 代码 class Solution:def backtracking(self, nums, result, path, used):if len(path) len(nums):result.append(path[:])for i in range(len(nums)):if used[i]:continuepath.app…

云数据库知识学习——云数据库产品、云数据库系统架构

一、云数据库产品 1.1、云数据库厂商概述 云数据库供应商主要分为三类。 ① 传统的数据库厂商&#xff0c;如 Teradata、Oracle、IBM DB2 和 Microsoft SQL Server 等。 ② 涉足数据库市场的云供应商&#xff0c;如 Amazon、Google、Yahoo!、阿里、百度、腾讯…

Milvus Cloud扩展变更:为向量数据库注入前沿增强功能

在向量数据库的不断变化中,Milvus Cloud已成为一个改变游戏规则的先锋,革新了我们存储、搜索和分析复杂向量数据的方式。通过最新版本的Milvus Cloud2.3.0,引入了一系列重要的增强和修改,为更强大、更高效的向量数据库解决方案铺平了道路。在本文中,我们将深入探讨Milvus …

基因融合与癌症研究gene fusions in cancer

基因融合与癌症研究简历史(截止到2015年) Major discoveries from research on gene fusions and cancer 主要肿瘤亚型涉及的基因融合数量 Number of gene fusions involved in major neoplasia subtypes 恶性疾病中基因融合相关FDA批准药物 FDA-approved drugs targeting…

OpenVINO2023+Win 11配置

&#x1f482; 个人主页:风间琉璃&#x1f91f; 版权: 本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主&#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 目录 前言 一、Anaconda 二、OpenVINO 三、PyCharm 前言 OpenVINO™是英特尔…

【数据结构】 七大排序详解(贰)——冒泡排序、快速排序、归并排序

文章目录 ⚽冒泡排序⚾算法步骤&#x1f3a8;算法优化&#x1f94e;代码实现&#xff1a;&#x1f3c0;冒泡排序的特性总结 &#x1f9ed;快速排序⚽算法思路&#x1f4cc;思路一&#xff08;Hoare版&#xff09;&#x1f4cc;思路二&#xff08;挖坑法&#xff09;&#x1f4c…

私有云系统生态选型与架构整合实战

文章目录 私有云系统生态选型与架构整合实战简介私有云系统选型OpenStackVMware vSphereOpenNebulaEucalyptus 私有云架构整合实战OpenStack架构整合实战VMware vSphere架构整合实战OpenNebula架构整合实战Eucalyptus架构整合实战 私有云系统的安全性问题身份认证和访问控制 私…

2023数模A题——定日镜场的优化问题

A题——定日镜场的优化问题 思路&#xff1a;该题主要考察的几何知识和天文学知识&#xff0c;需要不同角度下的镜面和遮挡情况。 资料获取 问题1&#xff1a; 若将吸收塔建于该圆形定日镜场中心&#xff0c;定日镜尺寸均为 6 m6 m&#xff0c;安装高度均为 4 m&#xff0c;且…