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

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> 

在这里插入图片描述

相关文章:

Redis-集群-环境搭建

文章目录 1、清空主从复制和哨兵模式留下的一些文件1.1、删除以rdb后缀名的文件1.2、删除主从复制的配置文件1.3、删除哨兵模式的配置文件 2、appendonly修改回no3、开启daemonize yes4、protect-mode no5、注释掉bind6、制作六个实例的配置文件6.1、制作配置文件redis6379.con…...

ITSG、COST-G、Tongji和WHU Level-2数据产品读取绘图(Matlab)

数据介绍: ICGEM International Center for Global Gravity Field Models (gfz-potsdam.de) ITSG 2018:Institute of Geodesy at Graz University of Technolog(格拉茨理工大学大地测量研究所) 2018版本,最高60阶球谐…...

linux(ubuntucentos)-安装libreoffice

因为需要在linux支持word文档和pdf之间的转换,调研验证后选择了libreoffice,在不同的服务器进行了安装,记录如下。 说明: 此处下载版本是7.6.7,如果网址不存在,可以访问http://mirrors.ustc.edu.cn/tdf/l…...

上海市计算机学会竞赛平台2023年9月月赛丙组点对之和(一)

题目描述 给定两个数列 𝑎1,𝑎2,…,𝑎𝑛a1​,a2​,…,an​ 与 𝑏1,𝑏2,…,𝑏𝑛b1​,b2​,…,bn​,保证这些数字是 11 到 𝑛n 之间的整数,请计算 …...

maven-jar-plugin在springboot中打包成普通引用的jar

如果您想要创建一个不包含Spring Boot特定结构的普通jar包(例如,一个可以被其他项目作为依赖引用的库),您需要在pom.xml中添加maven-jar-plugin的配置。这里是一个示例配置,它将创建一个带有lib分类器的jar包&#xff…...

小型海外仓布局策略:高效利用有限空间,标准化3F流程

合理高效的仓库空间设计,不只是对大型海外仓很关键。对空间有限的小型海外仓来说或许价值更大。 本身仓储空间就有限,如果还没有科学规划,造成空间浪费,那将直接影响到核心业务的运转。 今天我们就给大家整理了对小型海外仓布局…...

【高考志愿】电气工程

目录 一、专业概述 二、专业特点 三、就业前景 四、选择学校 高考志愿选择电气工程是一个极具智慧和远见的决定,因为电气工程在当今社会中扮演着至关重要的角色。以下是对电气工程专业更为详细的解析: 一、专业概述 电气工程及其自动化专业&#xf…...

贪吃蛇项目:GameRun与GameEnd部分:游戏的主体运行与善后部分

准备工作:打印得分信息 在进行GameStart之前,我们需要在地图的右侧打印帮助信息,以及目前玩家的得分情况和一个食物在当前速度下的得分情况(加速的状态下按比例增加食物的分数,减速的状态下则相反)&#xf…...

mysql索引、事务以及存储引擎

目录 一、索引 1)索引定义 ​2)工作方式 3)创建索引的依据 4)索引类型 1、index普通索引 2、unique唯一索引 3、主键索引 4、多列组合索引 5、全文索引 5)删除索引 6)查看索引 7)索…...

idea添加文档注释

一、easy javadoc插件 在settings的plugins中下载easy javadoc插件。 安装完成后重启idea,再次打开settings界面。会出现easyDoc相关配置。 二、设置模版以及使用 类描述模版参考设置: /** * 类描述 -> * * Author: ywz * Date: $Date$ */ 方法描述…...

python函数练习

1、编写函数&#xff0c;传入N&#xff0c;求123…N的和 def s_sum(num):i 1sum1 0while i < num:sum1 ii 1return sum1num int(input(请输入一个整数&#xff1a;)) print(和为:,s_sum(num))2、编写一个函数&#xff0c;定义一个列表&#xff0c;求列表中的最大值 d…...

基于PHP的奶茶商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的奶茶商城系统 一 介绍 此奶茶商城系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;ajax实现数据交换。系统角色分为用户和管理员。系统在原有基础上添加了糖度的选择。 技术栈 phpmysqlajaxphpstudyvscode 二 功能 用户…...

物联网“此用户无权修改接入点名称设置”解决方案

根本原因apns-conf.xml里面没有 符合 物理网卡 的配置 可以先加一个APN试一下&#xff0c;看看默认的MCC和MNC是什么 然后在”命令行“查询一下 adb shell sqlite3 /data/user_de/0/com.android.providers.telephony/databases/telephony.db "select * from carriers wh…...

网工常见面试题

1-10题 1.介绍TCP/IP四层、五层模型作用及每层包含的协议 TCP/IP四层模型 应用层&#xff1a; 作用&#xff1a;直接与应用程序交互&#xff0c;定义了应用程序如何通过网络发送数据。包含协议&#xff1a;HTTP&#xff08;网页浏览&#xff09;、FTP&#xff08;文件传输&…...

SQL实现UUIDv7

当我们选择数据库的主键类型时&#xff0c;通常会考虑自增数字或者 UUID。但是这两种类型都有优缺点&#xff0c;自增字段简单有序&#xff0c;性能良好&#xff0c;最大的问题是无法保证全局唯一性&#xff0c;分布式场景受限&#xff1b;UUID 具有全局唯一性&#xff0c;适合…...

2024期权交易佣金手续费最低是多少?期权交易有哪些成本?

显性成本 期权交易的显性成本包含期权交易的佣金和交易所费用&#xff0c;分别支付给券商和交易所&#xff0c;统一由券商代收。 佣金 期权佣金是期权交易时支付给券商的费用&#xff0c;佣金通常以交易金额的一定比例计算&#xff0c;可以是固定费用&#xff0c;也可以是滑…...

合合信息智能文档抽取:赋能不良资产管理行业的数字化转型

官.网地址&#xff1a;合合TextIn - 合合信息旗下OCR云服务产品 随着数字化浪潮的汹涌澎湃&#xff0c;全球各行各业正经历着前所未有的变革。人工智能技术的快速发展&#xff0c;以其独特的创新能力和应用潜力&#xff0c;正在深刻地改变着业务模式&#xff0c;推动产业效率的…...

【别再用Excel了!】这款免费可视化工具能帮你轻松提升效率

现代数据分析和展示的需求已经远远超出了传统工具的能力&#xff0c;尤其是在需要快速、直观和高效地处理复杂数据的情况下。山海鲸可视化通过其强大的功能和易用性&#xff0c;成为了设计师以及各类新手用户的理想选择。下面我就以一个可视化设计师的角度&#xff0c;和大家简…...

python holidays获取中国节日

在Python中&#xff0c;holidays库是一个流行的库&#xff0c;用于处理各种国家和地区的公共假期。然而&#xff0c;需要注意的是&#xff0c;截至2024年&#xff0c;holidays库的官方版本可能并不直接支持中国的所有节日。不过&#xff0c;我们可以通过扩展或自定义该类库来添…...

Jenkins流水线发布,一篇就解决你的所有疑惑

这次搭建的项目比较常规,前端是react写的,后端是springboot,并且由于是全栈开发,所以是在同一个项目中。接下来我演示下怎么用jenkins进行自动化发布。 1.jenkins必装插件 这里用到的是jenkinsFile主要是基于Groovy这个沙盒,有些前置插件。这里使用maven进行打包,所以需…...

揭秘开源智能字幕系统:如何用AI实现高效的多语言内容本地化

揭秘开源智能字幕系统&#xff1a;如何用AI实现高效的多语言内容本地化 【免费下载链接】openlrc Transcribe and translate voice into LRC file using Whisper and LLMs (GPT, Claude, et,al). 使用whisper和LLM(GPT&#xff0c;Claude等)来转录、翻译你的音频为字幕文件。 …...

别再用docker tag了!深入理解Containerd生态:crictl、ctr与nerdctl到底该怎么选?

深入解析Containerd生态&#xff1a;crictl、ctr与nerdctl的镜像管理实战指南 在容器技术快速发展的今天&#xff0c;越来越多的开发者正从Docker生态转向Containerd这一更轻量、更符合Kubernetes标准的运行时环境。但当我们真正开始使用Containerd时&#xff0c;往往会遇到一个…...

【Flutter for OpenHarmony 跨平台征文】Flutter 血压数据模型设计 + WHO标准分类算法实战指南

【Flutter for OpenHarmony 跨平台征文】Flutter 血压数据模型设计 WHO标准分类算法实战指南 欢迎加入开源鸿蒙跨平台社区&#xff1a;https://openharmonycrossplatform.csdn.net&#x1f3af; 写在前面 嗨&#xff0c;大家好&#xff01;我是上海某高校大一计算机专业的学生…...

合并报表的10个基本逻辑原理,0基础也能看懂

合并报表真正的门槛不在分录&#xff0c;而在思维方式。单体报表做久了&#xff0c;容易不自觉地站在一家公司的视角去看业务&#xff0c;但合并报表要求你立刻跳出来&#xff0c;用一个“虚构的大集团”的眼睛去重新审视所有交易。这种视角切换&#xff0c;往往比具体的抵销技…...

DSP开发环境搭建实战:从CCSv3.3安装到XDS510仿真器配置全解析

1. CCSv3.3安装全流程详解 第一次接触DSP开发的朋友&#xff0c;安装CCSv3.3这个"老前辈"可能会遇到各种意想不到的问题。我当年在实验室安装时&#xff0c;光是补丁问题就折腾了一整天。下面就把这些年积累的实战经验分享给大家。 首先需要准备的是安装文件。虽然现…...

Cursor AI插件开发指南:构建企业级智能编码助手

1. 项目概述&#xff1a;一个为开发者而生的智能编码伴侣如果你是一名开发者&#xff0c;每天在IDE里敲代码的时间超过8小时&#xff0c;那你一定对“上下文切换”和“信息查找”这两件事深恶痛绝。想象一下&#xff0c;你正在写一个复杂的API接口&#xff0c;突然需要回忆上周…...

Belullama:本地大模型部署的瑞士军刀,兼容Ollama API

1. 项目概述&#xff1a;一个为本地大模型量身定制的“瑞士军刀”如果你和我一样&#xff0c;热衷于在本地部署和折腾各种开源大语言模型&#xff0c;那你一定遇到过这样的场景&#xff1a;好不容易从Hugging Face或者ModelScope上拖下来一个几十GB的模型文件&#xff0c;兴冲冲…...

2026年国内GEO优化服务商盘点:6家主流选择的实际情况

说明&#xff1a; 本文盘点基于各服务商官网、公开媒体报道、可查询的工商信息整理&#xff0c;所有"案例数据"均来自服务商自我披露。GEO行业整体处于早期阶段&#xff0c;市场上自我标榜"行业第一""全球最强"的说法普遍存在&#xff0c;本文尽…...

6541616

56465651...

基于Gemini API构建多模态视觉应用:从原理到部署实践

1. 项目概述与核心价值最近在AI多模态领域&#xff0c;一个名为“gemini-vision-pro”的项目在开发者社区里引起了不小的讨论。这个项目本质上是一个基于Google Gemini API的视觉识别与图像理解应用&#xff0c;但它并非简单的API调用封装&#xff0c;而是提供了一个开箱即用、…...