Redis-集群-环境搭建

news2024/10/5 10:11:55

文章目录

  • 1、清空主从复制和哨兵模式留下的一些文件
    • 1.1、删除以rdb后缀名的文件
    • 1.2、删除主从复制的配置文件
    • 1.3、删除哨兵模式的配置文件
  • 2、appendonly修改回no
  • 3、开启daemonize yes
  • 4、protect-mode no
  • 5、注释掉bind
  • 6、制作六个实例的配置文件
    • 6.1、制作配置文件redis6379.conf
    • 6.2、制作配置文件redis6380.conf
    • 6.3、制作配置文件redis6381.conf
    • 6.4、制作配置文件redis6382.conf
    • 6.5、制作配置文件redis6383.conf
    • 6.6、制作配置文件redis6384.conf
    • 6.7、六个配置文件制作完成
  • 7、启动六个服务
    • 7.1、关闭主从复制启动的三个服务器
    • 7.2、所有redis实例启动后,nodes-xxxx.conf文件都生成正常
  • 8、将六个服务合并为一个集群
    • 8.1、运行如下命令
  • 9、集群的登录
    • 9.1、登录主机6379
    • 9.2、登录从机6382,只能读不能写
    • 9.3、登录主机6379,查看集群信息
  • 10、集群中录入值
    • 10.1、不在一个slot下的键值,是不能使用mget,mset等多键操作
    • 10.2、可以通过{}来定义组的概念,从而使key中{}内相同内容的键值对放到一个slot中去

1、清空主从复制和哨兵模式留下的一些文件

[root@localhost ~]# cd /usr/local/redis/
[root@localhost redis]# ll
总用量 248
drwxr-xr-x. 2 root root    150 126 2023 bin
-rw-r--r--. 1 root root     89 624 14:16 dump6379.rdb
-rw-r--r--. 1 root root    173 624 14:18 dump6380.rdb
-rw-r--r--. 1 root root     89 624 14:19 dump6381.rdb
-rw-r--r--. 1 root root     89 1220 2023 dump.rdb
-rw-r--r--. 1 root root    435 624 16:28 redis_6379.conf
-rw-r--r--. 1 root root    405 624 16:10 redis_6380.conf
-rw-r--r--. 1 root root    435 624 16:10 redis_6381.conf
-rw-r--r--. 1 root root 106547 624 13:59 redis_common.conf
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
-rw-r--r--. 1 root root    464 624 16:10 sentinel.conf
[root@localhost redis]# 

1.1、删除以rdb后缀名的文件

[root@localhost redis]# rm -rf *.rdb
[root@localhost redis]# ll
总用量 232
drwxr-xr-x. 2 root root    150 126 2023 bin
-rw-r--r--. 1 root root    435 624 16:28 redis_6379.conf
-rw-r--r--. 1 root root    405 624 16:10 redis_6380.conf
-rw-r--r--. 1 root root    435 624 16:10 redis_6381.conf
-rw-r--r--. 1 root root 106547 624 13:59 redis_common.conf
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
-rw-r--r--. 1 root root    464 624 16:10 sentinel.conf
[root@localhost redis]# 

1.2、删除主从复制的配置文件

[root@localhost redis]# rm -rf redis_6*
[root@localhost redis]# ll
总用量 220
drwxr-xr-x. 2 root root    150 126 2023 bin
-rw-r--r--. 1 root root 106547 624 13:59 redis_common.conf
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
-rw-r--r--. 1 root root    464 624 16:10 sentinel.conf
[root@localhost redis]# 
[root@localhost redis]# rm -rf redis_common.conf 
[root@localhost redis]# ll
总用量 112
drwxr-xr-x. 2 root root    150 126 2023 bin
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
-rw-r--r--. 1 root root    464 624 16:10 sentinel.conf
[root@localhost redis]# 

1.3、删除哨兵模式的配置文件

[root@localhost redis]# rm -rf sentinel.conf 
[root@localhost redis]# ll
总用量 108
drwxr-xr-x. 2 root root    150 126 2023 bin
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
[root@localhost redis]# 
[root@localhost redis]# cd bin/
[root@localhost bin]# ll
总用量 29184
-rw-r--r--. 1 root root       89 126 2023 dump.rdb
-rwxr-xr-x. 1 root root  7363432 126 2023 redis-benchmark
lrwxrwxrwx. 1 root root       12 126 2023 redis-check-aof -> redis-server
lrwxrwxrwx. 1 root root       12 126 2023 redis-check-rdb -> redis-server
-rwxr-xr-x. 1 root root  7650944 126 2023 redis-cli
lrwxrwxrwx. 1 root root       12 126 2023 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 14863400 126 2023 redis-server
[root@localhost bin]# rm -rf dump.rdb
[root@localhost bin]# ll
总用量 29180
-rwxr-xr-x. 1 root root  7363432 126 2023 redis-benchmark
lrwxrwxrwx. 1 root root       12 126 2023 redis-check-aof -> redis-server
lrwxrwxrwx. 1 root root       12 126 2023 redis-check-rdb -> redis-server
-rwxr-xr-x. 1 root root  7650944 126 2023 redis-cli
lrwxrwxrwx. 1 root root       12 126 2023 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 14863400 126 2023 redis-server
[root@localhost bin]# 

2、appendonly修改回no

[root@localhost redis]# pwd
/usr/local/redis
[root@localhost redis]# ll
总用量 108
drwxr-xr-x. 2 root root    134 624 17:21 bin
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
[root@localhost redis]# vim redis.conf 

在这里插入图片描述

3、开启daemonize yes

在这里插入图片描述

4、protect-mode no

在这里插入图片描述

5、注释掉bind

在这里插入图片描述

6、制作六个实例的配置文件

6.1、制作配置文件redis6379.conf

include /usr/local/redis/redis.conf
port 6379
pidfile "/var/run/redis_6379.pid"
dbfilename "dump6379.rdb"
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
[root@localhost ~]# cd /usr/local/redis/
[root@localhost redis]# ll
总用量 108
drwxr-xr-x. 2 root root    134 624 17:21 bin
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
[root@localhost redis]# vim redis6379.conf
[root@localhost redis]# ll
总用量 112
drwxr-xr-x. 2 root root    134 624 17:21 bin
-rw-r--r--. 1 root root    189 625 12:48 redis6379.conf
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
[root@localhost redis]# 

在这里插入图片描述

6.2、制作配置文件redis6380.conf

[root@localhost redis]# cp redis6379.conf redis6380.conf
[root@localhost redis]# ll
总用量 116
drwxr-xr-x. 2 root root    134 624 17:21 bin
-rw-r--r--. 1 root root    189 625 12:48 redis6379.conf
-rw-r--r--. 1 root root    189 625 12:58 redis6380.conf
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
[root@localhost redis]# vim redis6380.conf 

在这里插入图片描述
在这里插入图片描述

6.3、制作配置文件redis6381.conf

[root@localhost redis]# cp redis6379.conf redis6381.conf
[root@localhost redis]# ll
总用量 120
drwxr-xr-x. 2 root root    134 624 17:21 bin
-rw-r--r--. 1 root root    189 625 12:48 redis6379.conf
-rw-r--r--. 1 root root    189 625 13:03 redis6380.conf
-rw-r--r--. 1 root root    189 625 13:05 redis6381.conf
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
[root@localhost redis]# vim redis6381.conf 

在这里插入图片描述
在这里插入图片描述

6.4、制作配置文件redis6382.conf

[root@localhost redis]# cp redis6379.conf redis6382.conf
[root@localhost redis]# ll
总用量 124
drwxr-xr-x. 2 root root    134 624 17:21 bin
-rw-r--r--. 1 root root    189 625 12:48 redis6379.conf
-rw-r--r--. 1 root root    189 625 13:03 redis6380.conf
-rw-r--r--. 1 root root    189 625 13:07 redis6381.conf
-rw-r--r--. 1 root root    189 625 13:09 redis6382.conf
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
[root@localhost redis]# vim redis6382.conf 

在这里插入图片描述
在这里插入图片描述

6.5、制作配置文件redis6383.conf

[root@localhost redis]# cp redis6379.conf redis6383.conf
[root@localhost redis]# ll
总用量 128
drwxr-xr-x. 2 root root    134 624 17:21 bin
-rw-r--r--. 1 root root    189 625 12:48 redis6379.conf
-rw-r--r--. 1 root root    189 625 13:03 redis6380.conf
-rw-r--r--. 1 root root    189 625 13:07 redis6381.conf
-rw-r--r--. 1 root root    189 625 13:10 redis6382.conf
-rw-r--r--. 1 root root    189 625 13:11 redis6383.conf
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
[root@localhost redis]# vim redis6383.conf 

在这里插入图片描述
在这里插入图片描述

6.6、制作配置文件redis6384.conf

[root@localhost redis]# cp redis6379.conf redis6384.conf
[root@localhost redis]# ll
总用量 132
drwxr-xr-x. 2 root root    134 624 17:21 bin
-rw-r--r--. 1 root root    189 625 12:48 redis6379.conf
-rw-r--r--. 1 root root    189 625 13:03 redis6380.conf
-rw-r--r--. 1 root root    189 625 13:07 redis6381.conf
-rw-r--r--. 1 root root    189 625 13:10 redis6382.conf
-rw-r--r--. 1 root root    189 625 13:12 redis6383.conf
-rw-r--r--. 1 root root    189 625 13:14 redis6384.conf
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
[root@localhost redis]# vim redis6384.conf 

在这里插入图片描述
在这里插入图片描述

6.7、六个配置文件制作完成

[root@localhost redis]# ll
总用量 132
drwxr-xr-x. 2 root root    134 624 17:21 bin
-rw-r--r--. 1 root root    189 625 12:48 redis6379.conf
-rw-r--r--. 1 root root    189 625 13:03 redis6380.conf
-rw-r--r--. 1 root root    189 625 13:07 redis6381.conf
-rw-r--r--. 1 root root    189 625 13:10 redis6382.conf
-rw-r--r--. 1 root root    189 625 13:12 redis6383.conf
-rw-r--r--. 1 root root    189 625 13:15 redis6384.conf
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
[root@localhost redis]# pwd
/usr/local/redis
[root@localhost redis]# 

在这里插入代码片在这里插入图片描述

7、启动六个服务

7.1、关闭主从复制启动的三个服务器

[root@localhost ~]# ps -ef | grep redis | grep -v grep
root       6965      1  0 08:05 ?        00:00:33 /usr/local/redis/bin/redis-server *:6380
root       6980      1  0 08:06 ?        00:00:33 /usr/local/redis/bin/redis-server *:6381
root       8318      1  0 10:13 ?        00:00:21 /usr/local/redis/bin/redis-server *:6379
root       9279   9105  0 11:35 pts/5    00:00:00 vim redis.conf       
[root@localhost ~]# /usr/local/redis/bin/redis-cli -p 6379 shutdown
[root@localhost ~]# /usr/local/redis/bin/redis-cli -p 6380 shutdown
[root@localhost ~]# /usr/local/redis/bin/redis-cli -p 6381 shutdown
[root@localhost ~]# ps -ef | grep redis | grep -v grep
root       9279   9105  0 11:35 pts/5    00:00:00 vim redis.conf
[root@localhost ~]# 
[root@localhost redis]# /usr/local/redis/bin/redis-server /usr/local/redis/redis6379.conf 
[root@localhost redis]# /usr/local/redis/bin/redis-server /usr/local/redis/redis6380.conf 
[root@localhost redis]# /usr/local/redis/bin/redis-server /usr/local/redis/redis6381.conf 
[root@localhost redis]# /usr/local/redis/bin/redis-server /usr/local/redis/redis6382.conf 
[root@localhost redis]# /usr/local/redis/bin/redis-server /usr/local/redis/redis6383.conf 
[root@localhost redis]# /usr/local/redis/bin/redis-server /usr/local/redis/redis6384.conf
[root@localhost redis]# ps -ef | grep redis | grep -v grep
root      11403      1  0 14:08 ?        00:00:00 /usr/local/redis/bin/redis-server *:6379 [cluster]
root      11412      1  0 14:09 ?        00:00:00 /usr/local/redis/bin/redis-server *:6380 [cluster]
root      11418      1  0 14:09 ?        00:00:00 /usr/local/redis/bin/redis-server *:6381 [cluster]
root      11424      1  0 14:09 ?        00:00:00 /usr/local/redis/bin/redis-server *:6382 [cluster]
root      11430      1  0 14:09 ?        00:00:00 /usr/local/redis/bin/redis-server *:6383 [cluster]
root      11436      1  0 14:09 ?        00:00:00 /usr/local/redis/bin/redis-server *:6384 [cluster]
[root@localhost redis]# 

7.2、所有redis实例启动后,nodes-xxxx.conf文件都生成正常

[root@localhost redis]# ll
总用量 156
drwxr-xr-x. 2 root root    134 624 17:21 bin
-rw-r--r--. 1 root root    114 625 14:08 nodes-6379.conf
-rw-r--r--. 1 root root    114 625 14:09 nodes-6380.conf
-rw-r--r--. 1 root root    114 625 14:09 nodes-6381.conf
-rw-r--r--. 1 root root    114 625 14:09 nodes-6382.conf
-rw-r--r--. 1 root root    114 625 14:09 nodes-6383.conf
-rw-r--r--. 1 root root    114 625 14:09 nodes-6384.conf
-rw-r--r--. 1 root root    189 625 12:48 redis6379.conf
-rw-r--r--. 1 root root    189 625 13:03 redis6380.conf
-rw-r--r--. 1 root root    189 625 13:07 redis6381.conf
-rw-r--r--. 1 root root    189 625 13:10 redis6382.conf
-rw-r--r--. 1 root root    189 625 13:12 redis6383.conf
-rw-r--r--. 1 root root    189 625 13:15 redis6384.conf
-rw-r--r--. 1 root root 106546 126 2023 redis.conf
[root@localhost redis]# pwd
/usr/local/redis
[root@localhost redis]# 

在这里插入图片描述

8、将六个服务合并为一个集群

此处不要用127.0.0.1, 请用真实IP地址 --replicas 1 采用最简单的方式配置集群,一台主机,一台从机,正好三组

8.1、运行如下命令

redis-cli --cluster create --cluster-replicas 1 192.168.74.148:6379 192.168.74.148:6380 192.168.74.148:6381 192.168.74.148:6382 192.168.74.148:6383 192.168.74.148:6384
[root@localhost redis]# /usr/local/redis/bin/redis-cli --cluster create --cluster-replicas 1 192.168.74.148:6379 192.168.74.148:6380 192.168.74.148:6381 192.168.74.148:6382 192.168.74.148:6383 192.168.74.148:6384 
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.74.148:6383 to 192.168.74.148:6379
Adding replica 192.168.74.148:6384 to 192.168.74.148:6380
Adding replica 192.168.74.148:6382 to 192.168.74.148:6381
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: dcb82723f90f0a2ab6af8fb008b5847f5aa0df45 192.168.74.148:6379
   slots:[0-5460] (5461 slots) master
M: aa4ecdba6e2cc523dcefe6244a72f768fc8fbae9 192.168.74.148:6380
   slots:[5461-10922] (5462 slots) master
M: 3eac3019bcf18e8959a49f5e1389c39d51a1b0d8 192.168.74.148:6381
   slots:[10923-16383] (5461 slots) master
S: a569032e711a267a419c99719c3b87683c2fea6c 192.168.74.148:6382
   replicates 3eac3019bcf18e8959a49f5e1389c39d51a1b0d8
S: 5a6df4b92983ecfae646e3c7f5f2851ef118f9c0 192.168.74.148:6383
   replicates dcb82723f90f0a2ab6af8fb008b5847f5aa0df45
S: f749b8d27581caf20b7a3d339d43621fbffa4962 192.168.74.148:6384
   replicates aa4ecdba6e2cc523dcefe6244a72f768fc8fbae9
Can I set the above configuration? (type 'yes' to accept): 
Can I set the above configuration? (type 'yes' to accept): yes

>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
.
>>> Performing Cluster Check (using node 192.168.74.148:6379)
M: dcb82723f90f0a2ab6af8fb008b5847f5aa0df45 192.168.74.148:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
S: 5a6df4b92983ecfae646e3c7f5f2851ef118f9c0 192.168.74.148:6383
   slots: (0 slots) slave
   replicates dcb82723f90f0a2ab6af8fb008b5847f5aa0df45
M: aa4ecdba6e2cc523dcefe6244a72f768fc8fbae9 192.168.74.148:6380
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: a569032e711a267a419c99719c3b87683c2fea6c 192.168.74.148:6382
   slots: (0 slots) slave
   replicates 3eac3019bcf18e8959a49f5e1389c39d51a1b0d8
M: 3eac3019bcf18e8959a49f5e1389c39d51a1b0d8 192.168.74.148:6381
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: f749b8d27581caf20b7a3d339d43621fbffa4962 192.168.74.148:6384
   slots: (0 slots) slave
   replicates aa4ecdba6e2cc523dcefe6244a72f768fc8fbae9
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@localhost redis]# 

在这里插入图片描述

9、集群的登录

登录指令添加 -c 代表以集群方式登录

9.1、登录主机6379

[root@localhost redis]# /usr/local/redis/bin/redis-cli -c -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> 
[root@localhost redis]# /usr/local/redis/bin/redis-cli -c -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set k1 v1
-> Redirected to slot [12706] located at 192.168.74.148:6381
OK
192.168.74.148:6381> set k2 v2
-> Redirected to slot [449] located at 192.168.74.148:6379
OK
192.168.74.148:6379> 
192.168.74.148:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.74.148,port=6383,state=online,offset=2306,lag=1
master_failover_state:no-failover
master_replid:ab2c4b92097802299003be0ec17821ed7eb68d27
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:2306
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:2306
192.168.74.148:6379> 

9.2、登录从机6382,只能读不能写

[root@localhost redis]# /usr/local/redis/bin/redis-cli -c -p 6382
127.0.0.1:6382> info replication
# Replication
role:slave
master_host:192.168.74.148
master_port:6381
master_link_status:up
master_last_io_seconds_ago:9
master_sync_in_progress:0
slave_read_repl_offset:2376
slave_repl_offset:2376
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:5af18e242e643710fa639780fb6e4c3b8157846e
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:2376
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:15
repl_backlog_histlen:2362
127.0.0.1:6382> 

9.3、登录主机6379,查看集群信息

在redis cluster架构下,每个redis要放开两个端口号,比如一个是6379,另外一个就是加10000的端口号,比如16379,16379端口号是用来进行节点间通信的,也就是cluster bus的东西,集群总线。cluster bus的通信,用来进行故障检测,配置更新,故障转移授权。

[root@localhost redis]# /usr/local/redis/bin/redis-cli -c -p 6379
127.0.0.1:6379> CLUSTER NODES
5a6df4b92983ecfae646e3c7f5f2851ef118f9c0 192.168.74.148:6383@16383 slave dcb82723f90f0a2ab6af8fb008b5847f5aa0df45 0 1719298534642 1 connected
aa4ecdba6e2cc523dcefe6244a72f768fc8fbae9 192.168.74.148:6380@16380 master - 0 1719298536661 2 connected 5461-10922
a569032e711a267a419c99719c3b87683c2fea6c 192.168.74.148:6382@16382 slave 3eac3019bcf18e8959a49f5e1389c39d51a1b0d8 0 1719298534000 3 connected
3eac3019bcf18e8959a49f5e1389c39d51a1b0d8 192.168.74.148:6381@16381 master - 0 1719298533635 3 connected 10923-16383
f749b8d27581caf20b7a3d339d43621fbffa4962 192.168.74.148:6384@16384 slave aa4ecdba6e2cc523dcefe6244a72f768fc8fbae9 0 1719298535651 2 connected
dcb82723f90f0a2ab6af8fb008b5847f5aa0df45 192.168.74.148:6379@16379 myself,master - 0 1719298534000 1 connected 0-5460
127.0.0.1:6379> 

10、集群中录入值

10.1、不在一个slot下的键值,是不能使用mget,mset等多键操作

[root@localhost redis]# /usr/local/redis/bin/redis-cli -c -h 192.168.74.148 -p 6379
192.168.74.148:6379> CLUSTER NODES
5a6df4b92983ecfae646e3c7f5f2851ef118f9c0 192.168.74.148:6383@16383 slave dcb82723f90f0a2ab6af8fb008b5847f5aa0df45 0 1719298643571 1 connected
aa4ecdba6e2cc523dcefe6244a72f768fc8fbae9 192.168.74.148:6380@16380 master - 0 1719298642563 2 connected 5461-10922
a569032e711a267a419c99719c3b87683c2fea6c 192.168.74.148:6382@16382 slave 3eac3019bcf18e8959a49f5e1389c39d51a1b0d8 0 1719298641000 3 connected
3eac3019bcf18e8959a49f5e1389c39d51a1b0d8 192.168.74.148:6381@16381 master - 0 1719298643000 3 connected 10923-16383
f749b8d27581caf20b7a3d339d43621fbffa4962 192.168.74.148:6384@16384 slave aa4ecdba6e2cc523dcefe6244a72f768fc8fbae9 0 1719298641556 2 connected
dcb82723f90f0a2ab6af8fb008b5847f5aa0df45 192.168.74.148:6379@16379 myself,master - 0 1719298643000 1 connected 0-5460
192.168.74.148:6379> keys *
(empty array)
192.168.74.148:6379> mset k1 v1 k2 v2
(error) CROSSSLOT Keys in request don't hash to the same slot
192.168.74.148:6379> keys *
(empty array)
192.168.74.148:6379> 

10.2、可以通过{}来定义组的概念,从而使key中{}内相同内容的键值对放到一个slot中去

192.168.74.148:6379> mset k1{aa} v1 k2{aa} v2
OK
192.168.74.148:6379> mset k3{bc} v3 k4{bc} v4
-> Redirected to slot [12685] located at 192.168.74.148:6381
OK
192.168.74.148:6381> keys *
1) "k3{bc}"
2) "k4{bc}"
3) "k1"
192.168.74.148:6381> 

在这里插入图片描述

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

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

相关文章

boss直聘招聘数据可视化分析

boss直聘招聘数据可视化分析 一、数据预处理二、数据可视化三、完整代码一、数据预处理 在 上一篇博客中,笔者已经详细介绍了使用selenium爬取南昌市web前端工程师的招聘岗位数据,数据格式如下: 这里主要对薪水列进行处理,为方便处理,将日薪和周薪的数据删除,将带有13薪…

迁移学习——CycleGAN

CycleGAN 1.导入需要的包2.数据加载(1)to_img 函数(2)数据加载(3)图像转换 3.随机读取图像进行预处理(1)函数参数(2)数据路径(3)读取文…

数据结构——带头双向循环链表(c语言实现)

目录 1.单链表和双向链表对比 2.双向链表实现 2.1 创建新节点 2.2 链表初始化 2.3 尾插 2.4 头插 2.5 尾删 2.6 头删 2.7 查找 2.8 指定位置后插入数据 2.9 删除指定节点 2.10 销毁链表 2.11 打印链表 前言: 我们在前几期详细地讲解了不带头单…

EthernetIP IO从站设备数据 转opc ua项目案例

1 案例说明 设置网关采集EthernetIP IO设备数据把采集的数据转成opc ua协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协议转换网关,是把一种协议转换成另外一种协议。网关可以采集西门子,欧姆龙,三菱,AB PLC&#xff0…

day41--Redis(三)高级篇之最佳实践

Redis高级篇之最佳实践 今日内容 Redis键值设计批处理优化服务端优化集群最佳实践 1、Redis键值设计 1.1、优雅的key结构 Redis的Key虽然可以自定义,但最好遵循下面的几个最佳实践约定: 遵循基本格式:[业务名称]:[数据名]:[id]长度不超过…

STM32音频应用开发:DMA与定时器的高效协作

摘要: 本文章将深入浅出地介绍如何使用STM32单片机实现音频播放功能。文章将从音频基础知识入手,逐步讲解音频解码、DAC转换、音频放大等关键环节,并结合STM32 HAL库给出具体的代码实现和电路设计方案。最后,我们将通过一个实例演示如何播放W…

FPGA SATA高速存储设计

今天来讲一篇如何在fpga上实现sata ip,然后利用sata ip实现读写sata 盘的目的,如果需要再速度和容量上增加,那么仅仅需要增加sata ip个数就能够实现增加sata盘,如果仅仅实现data的读写整体来说sata ip设计比较简单,下面…

大模型产品的“命名经济学”:名字越简单,产品越火爆?

文 | 智能相对论 作者 | 陈泊丞 古人云:赐子千金,不如教子一艺;教子一艺,不如赐子一名。 命名之妙,玄之又玄。 早两年,大模型爆火,本土厂商在大模型产品命名上可谓下足了功夫,引…

小公司选择高水平LabVIEW团队外包

小公司选择高水平LabVIEW团队外包的优点可以从多个方面进行详细说明,包括专业技能、成本效益、时间效率、技术支持、风险管理和灵活性等。以下是具体的优点分析: 1. 专业技能和经验 优点: 高水平专业技能:高水平的LabVIEW团队通…

力扣316.去除重复字母

力扣316.去除重复字母 从左到右遍历每个字母 若当前字母比栈顶字母小 并且右边仍然后栈顶字母出现弹出栈顶字母 最后加入当前字母 class Solution {public:string removeDuplicateLetters(string s) {//记录每个字母出现次数;当前字符串中字母是否出现vector<int> lef…

单目标应用:基于吸血水蛭优化器(Blood-Sucking Leech Optimizer,BSLO)的微电网优化(MATLAB代码)

一、微电网模型介绍 微电网多目标优化调度模型简介_vmgpqv-CSDN博客 参考文献&#xff1a; [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、吸血水蛭优化器求解微电网 2.1算法简介 吸血水蛭优化器&#xff08;B…

AI技术与艺术的融合:开创性的用户界面与产品体验

引言 近年来&#xff0c;人工智能&#xff08;AI&#xff09;的飞速发展改变了我们的生活和工作方式。AI技术不仅在算力和模型上取得了重大进步&#xff0c;更在用户界面和产品体验方面迎来了突破。近日&#xff0c;科技博客 Stratechery 的文章以及硅谷投资基金 AI Grant 的两…

platform 设备驱动实验

platform 设备驱动实验 Linux 驱动的分离与分层 代码的重用性非常重要&#xff0c;否则的话就会在 Linux 内核中存在大量无意义的重复代码。尤其是驱动程序&#xff0c;因为驱动程序占用了 Linux内核代码量的大头&#xff0c;如果不对驱动程序加以管理&#xff0c;任由重复的…

注意!短视频的致命误区,云微客教你避开!

为什么你做短视频就是干不过同行&#xff1f;因为你总想着拍剧情、段子这些娱乐视频&#xff0c;还想着当网红做IP人设&#xff0c;但是这些内容跟你的盈利没有半毛钱关系&#xff0c;况且难度大、见效慢&#xff0c;还不是精准客户。 以上这些就代表你走进了短视频的误区&…

Linux常用环境变量PATH

Linux常用环境变量 一、常用的默认的shell环境变量二、环境变量 PATH三、持久化修改环境变量四、常用的环境变量 一、常用的默认的shell环境变量 1、当我们在shell命令行属于一个命令&#xff0c;shell解释器去解释这个命令的时候&#xff0c;需要先找到这个命令. 找到命令有两…

边缘混合计算智慧矿山视频智能综合管理方案:矿山安全生产智能转型升级之路

一、智慧矿山方案介绍 智慧矿山是以矿山数字化、信息化为前提和基础&#xff0c;通过物联网、人工智能等技术进行主动感知、自动分析、快速处理&#xff0c;实现安全矿山、高效矿山的矿山智能化建设。旭帆科技TSINGSEE青犀基于图像的前端计算、边缘计算技术&#xff0c;结合煤…

k8s学习--Kruise Rollouts 基本使用

文章目录 Kruise Rollouts简介什么是 Kruise Rollouts&#xff1f;核心功能 应用环境一、OpenKruise部署1.安装helm客户端工具2. 通过 helm 安装 二、Kruise Rollouts 安装2. kubectl plugin安装 三、Kruise Rollouts 基本使用(多批次发布)1. 使用Deployment部署应用2.准备Roll…

当前的网安行业绝对不是高薪行业

昨天&#xff0c;面试了一个刚毕业两年的同学小A。第一学历为某大专&#xff0c;第二学历为某省地区的本科院校。面试过程表现一般偏下&#xff0c;但动不动就要薪资15K 这个人&#xff0c;我当场就PASS了。主要原因是&#xff0c;并非是否定小A同学的能力&#xff0c;而是他…

Axure 教程 | 雅虎新闻焦点

主要内容 在雅虎首页&#xff0c;新闻焦点大图和焦点小图同步切换轮播&#xff0c;本课程我们来学习如何实现这个效果。 交互说明 1.页面载入后&#xff0c;切换当前屏幕显示的5张焦点图&#xff0c;小图标处以横线提示当前焦点图。 2.鼠标移入焦点大图&#xff0c;新闻标题显示…

打破数据分析壁垒:SPSS复习必备(九)

有序定性资料统计推断 1.分类 单向有序行列表 双向有序属性相同行列表 双向有序属性不同行列表 2.单向有序行列表 秩和检验 ① 两组单向有序分类资料 ②多组单向有序定性资料 步骤&#xff1a; 1.建立检验假设和确定检验水准 2.编秩 3.求秩和 4.确定检验统计量 5…