Redis-集群-环境搭建

文章目录

  • 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:6379slots:[0-5460] (5461 slots) master
M: aa4ecdba6e2cc523dcefe6244a72f768fc8fbae9 192.168.74.148:6380slots:[5461-10922] (5462 slots) master
M: 3eac3019bcf18e8959a49f5e1389c39d51a1b0d8 192.168.74.148:6381slots:[10923-16383] (5461 slots) master
S: a569032e711a267a419c99719c3b87683c2fea6c 192.168.74.148:6382replicates 3eac3019bcf18e8959a49f5e1389c39d51a1b0d8
S: 5a6df4b92983ecfae646e3c7f5f2851ef118f9c0 192.168.74.148:6383replicates dcb82723f90f0a2ab6af8fb008b5847f5aa0df45
S: f749b8d27581caf20b7a3d339d43621fbffa4962 192.168.74.148:6384replicates 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:6379slots:[0-5460] (5461 slots) master1 additional replica(s)
S: 5a6df4b92983ecfae646e3c7f5f2851ef118f9c0 192.168.74.148:6383slots: (0 slots) slavereplicates dcb82723f90f0a2ab6af8fb008b5847f5aa0df45
M: aa4ecdba6e2cc523dcefe6244a72f768fc8fbae9 192.168.74.148:6380slots:[5461-10922] (5462 slots) master1 additional replica(s)
S: a569032e711a267a419c99719c3b87683c2fea6c 192.168.74.148:6382slots: (0 slots) slavereplicates 3eac3019bcf18e8959a49f5e1389c39d51a1b0d8
M: 3eac3019bcf18e8959a49f5e1389c39d51a1b0d8 192.168.74.148:6381slots:[10923-16383] (5461 slots) master1 additional replica(s)
S: f749b8d27581caf20b7a3d339d43621fbffa4962 192.168.74.148:6384slots: (0 slots) slavereplicates 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.rhkb.cn/news/361327.html

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

相关文章

数据结构——带头双向循环链表(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 打印链表 前言: 我们在前几期详细地讲解了不带头单…

数据分析python基础实战分析

数据分析python基础实战分析 安装python,建议安装Anaconda 【Anaconda下载链接】https://repo.anaconda.com/archive/ 记得勾选上这个框框 安装完后,然后把这两个框框给取消掉再点完成 在电脑搜索框输入"Jupyter",牛马启动&am…

网易严选礼品卡有什么用?

网易严选的礼品卡可以在网易商城里买东西 但是现在好多人买东西基本上都用的是淘宝京东之类的 很少会有人用网易吧 但是最近我朋友送了我几张网易的卡,我自己也用积分兑换一张,一直不知道怎么用 最后还是在收卡云上转让出去了,价格高不说…

2024年JCR分区,将发生重大变化

科睿唯安官方微信发布消息,指出今年的期刊排名及相应JCR分区将发生重大变化。 原文比较长,不熟悉相关规则的朋友也不太容易读懂。因此,我们今天做一个详细的解读。 首先明确几个基本概念: (1)2024年发布2…

File类和IO流

File类和IO流 文章目录 File类和IO流[TOC](文章目录)前言一、java.io.File类&IO流原理及流的分类1.1 File类及其API1.2 IO流原理及分类 二、节点流的介绍(字符/字节)2.1 Reader\Writer--字符IO抽象基类2.2 FileReader\FileWriter--字符IO节点流2.3 I…

Android 多媒体开发——Media3与MediaSession最全使用指南

一、Media3库简介 1.1 Media3是什么? 官方释义: Jetpack Media3 is the new home for media libraries that enables Android apps to display rich audio and visual experiences. Media3 offers a simple architecture with powerful customization,…

Git 和 TortoiseGit 安装和配置(图文详解)

使用git,需要在Windows上需要安装两个软件:1)Git 2)TortoiseGit 若需要,可以下载TortoiseGit汉化语言包。 注意:tortoiseGit是在安装了Git的基础上运行的,所以需要先安装Git,后安装…

Mysql索引的实现原理,B+Tree,WAL

InnoDB 引擎,每一个数据表有两个文件 .frm和.ibd,分别为表结构,数据和索引,数据挂在主索引的叶子节点上,此主索引称为聚簇索引。 MyISAM 引擎,每一个数据表有三个文件.frm和.MYI和.MYD,分别为表…

深入理解计算机系统 CSAPP 家庭作业7.13

用一下496页提到的工具咯 A: whereis libm.a file lidm.a gedit libm.a libm.a是个ASCII text文件打开一看原来 libm-2.27.a 和libmvec.a才是我们要看的 所以我们cd到目标地址后 ar -t libm-2.27.a ar -t libmvec.a B: gcc -Og bar5.c foo5.c 用之前的两个文件链接后生成…

【CS.DS】数据结构 —— 图:深入了解三种表示方法之邻接表(Adjacency List)

文章目录 1 概念2 无向图的邻接表2.1 示例2.2 Mermaid 图示例2.3 C实现2.3.1 简单实现2.3.2 优化封装 2.4 总结 3 有向图的邻接表3.1 示例3.2 C实现3.3 总结 4 邻接图的遍历5 拓展补充References 数据结构 1 概念 优点:空间效率高,适合稀疏图。动态性强…

springboot 整合redis

文章目录 一、Jedis二、Lettuce三、RedisTemplate(重点)单机3.1 springboot 整合swagger3.2 序列化中文问题集群3.3 applications配置3.4 问题 一、Jedis package com.example.redis;import redis.clients.jedis.Jedis;import javax.print.DocFlavor; import java.util.*;/***…

【编译原理】绪论

1.计算机程序语言以及编译 编译是对高级语言的翻译 源程序是句子的集合,树可以较好的反应句子的结构 编译程序是一种翻译程序 2.编号器在语言处理系统中的位置 可重定位:在内存中存放的起始位置不是固定的 加载器:修改可重定位地址&#x…

古文字识别笔记

前置知识 部件:大部分的汉字是由若干组笔画结构拼合而成的,这些相对独立的笔画结构称为「部件」。 部件是大于基本笔画(例如:点、横、撇、捺等)而小于或等同于 偏旁 的结构单位。 例如「测」字有三个部件:…

【学习】使用PyTorch训练与评估自己的ResNet网络教程

参考:保姆级使用PyTorch训练与评估自己的ResNet网络教程_训练自己的图像分类网络resnet101 pytorch-CSDN博客 项目地址:GitHub - Fafa-DL/Awesome-Backbones: Integrate deep learning models for image classification | Backbone learning/comparison…

高效修复机床导轨磨损,保障加工精度!

机床导轨是支承和引导运动构件沿着一定轨迹运动的传动装置,在机器设备中是个十分重要的部件,在机床中是常见的部件。机床的加工精度与导轨精度有直接的联系,且导轨一旦损坏,维修较复杂且困难。我们简单总结了以下几点对于机床导轨…

编程设计思想

健康检查脚本 nmap:扫描端口 while true do healthycurl B:httpPORT/healthy -i | grep HTTP/1.1 | tail -n 1 | awk {print $2} done 批量操作类型脚本(记录每一步日志) 将100个nginx:vn推送到harbor仓库192.168.0.100 根据镜像对比sha值…

【开源项目】自然语言处理领域的明星项目推荐:Hugging Face Transformers

在当今人工智能与大数据飞速发展的时代,自然语言处理(NLP)已成为推动科技进步的重要力量。而在NLP领域,Hugging Face Transformers无疑是一个备受瞩目的开源项目。本文将从项目介绍、代码解释以及技术特点等角度,为您深…

面向对象修炼手册(四)(多态与空间分配)(Java宝典)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀面向对象修炼手册 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 前言 1 多态 1.1 多态的形式&…

需求之 实现获取调试信息在h5页面,在手机端可以查看调试(二)

事实证明 chatgpt很好用,有不懂的问题可以问它 https://zhuanlan.zhihu.com/p/690118775 国内外9个免费的ChatGPT网站 我筛选出来的比较好用免费的网站 fchat.dykyzdh.cn/ 这个也可以 阿里云的 通义灵码 在vscode中安装使用 而且阿里云有一个产品,可以…

面试-Java线程池

1.利用Excutors创建不同的线程池满足不同场景的需求 分析: 如果并发的请求的数量非常多,但每个线程执行的时间非常短,这样就会频繁的创建和销毁线程。如此一来,会大大降低系统的效率。 可能出现,服务器在为每个线程创建…