四川网站建设益友,杭州网页设计招聘,快手推广软件免费版,怎么用域名建网站一.redis主从模式和redis集群模式的区别
redis主从模式:所有节点上的数据一致#xff0c;但是key过多会影响性能
redis集群模式:将数据分散到多个redis节点#xff0c;数据分片存储#xff0c;提高了redis的吞吐量 二.redis cluster集群的特点
数据分片 多个存储入…一.redis主从模式和redis集群模式的区别
redis主从模式:所有节点上的数据一致但是key过多会影响性能
redis集群模式:将数据分散到多个redis节点数据分片存储提高了redis的吞吐量 二.redis cluster集群的特点
数据分片 多个存储入口 故障自动切换 三.redis数据存储机制
通过哈希算法将数据存储到集群中的卡槽中 四.redis cluster集群规划 三主: 192.168.145.142:7000 192.168.145.159:7001 192.168.145.160:7002 三从: 192.168.145.142:8000 192.168.145.159:8001 192.168.145.160:8002 三从保证主有问题时及时切换
192.168.145.142端配置:
#创建配置文件目录
mkdir -p /data/cluster/7000
mkdir -p /data/cluster/8000
#创建配置文件......其余5个主机配置配置文件修改端口和目录即可其余参数一样
vim /data/cluster/7000/redis.conf
cluster-enabled yes
port 7000
dir /data/cluster/7000
logfile redis.log
pidfile redis.pid
daemonize yes
bind 0.0.0.0
requirepass redispwd
masterauth redispwd
tcp-backlog 511
tcp-keepalive 300
loglevel notice
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly yes
appendfilename appendonly.aof
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events g$
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes启动主redis:
redis-server /data/cluster/7000/redis.conf
[rootbogon ~]# ps -ef | grep redis
root 3522 1 0 22:45 ? 00:00:00 redis-server 0.0.0.0:7000 [cluster]
root 3534 3181 0 22:51 pts/1 00:00:00 grep --colorauto redis创建3个主集群任意一端操作均可:
redis-cli -a redispwd --cluster create 192.168.145.142:7000 192.168.145.159:7001 192.168.145.160:7002
redis-cli -a redispwd --cluster create 192.168.145.142:7000 192.168.145.160:7001 192.168.145.161:7002查看集群信息:
[rootbogon ~]#redis-cli -a redispwd -p 7000 cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:3
cluster_size:3
cluster_current_epoch:3
cluster_my_epoch:1
cluster_stats_messages_ping_sent:588
cluster_stats_messages_pong_sent:560
cluster_stats_messages_sent:1148
cluster_stats_messages_ping_received:558
cluster_stats_messages_pong_received:588
cluster_stats_messages_meet_received:2
cluster_stats_messages_received:1148[rootbogon ~]#redis-cli -a redispwd -p 7000 cluster nodes
c63dfc9a880d9b2d48864b8690797fe75ec8e173 192.168.145.160:700217002 master - 0 1714490094021 3 connected 10923-16383
7fbae96055629879bfce1f2ea6419e882e84cf75 192.168.145.142:700017000 myself,master - 0 0 1 connected 0-5460
b7b7c09a232814774a259ae24aeeb8bbacaf6db6 192.168.145.159:700117001 master - 0 1714490092968 2 connected 5461-10922在任意一个节点向集群中写入数据:
[rootbogon ~]# redis-cli -p 7000 -a redispwd -c #-c以及群的方式写入
127.0.0.1:7000 set k1 v1 #发现数据被写入了192.168.145.160:7002
- Redirected to slot [12706] located at 192.168.145.160:7002
OK
192.168.145.160:7002 set k2 v2 #再次写入的数据被存储到了192.168.145.142:7000可以看出数据是分布式存储的
- Redirected to slot [449] located at 192.168.145.142:7000
OK查看存储的数据:
只能在对应的节点上查看对应的数据
[rootbogon ~]# redis-cli -p 7000 -a redispwd -c
127.0.0.1:7000 set k1 v1
- Redirected to slot [12706] located at 192.168.145.160:7002 #7000端口生成的7002端口的数据
OK
[rootbogon ~]# redis-cli -p 7002 -a redispwd -c #登录7002端查看数据
127.0.0.1:7002 get k1
v1搭建3个从集群实现redis的高可用:
启动从redis:
[rootbogon ~]# redis-server /data/cluster/8000/redis.conf
[rootbogon ~]# ps -ef | grep redis
root 3522 1 0 Apr30 ? 00:00:09 redis-server 0.0.0.0:7000 [cluster]
root 3764 1 0 00:03 ? 00:00:00 redis-server 0.0.0.0:8000 [cluster]
root 3771 3181 0 00:08 pts/1 00:00:00 grep --colorauto redis在任意一个节点向3个主节点添加从库:
#查看集群各个节点的master id
[rootbogon ~]# redis-cli -a redispwd -p 7000 cluster nodes7000的master id 从节点 主节点
[rootbogon ~]# redis-cli -a redispwd --cluster add-node --cluster-slave --cluster-master-id 7fbae96055629879bfce1f2ea6419e882e84cf75 192.168.145.159:8001 192.168.145.142:7000
[rootbogon ~]# redis-cli -a redispwd --cluster add-node --cluster-slave --cluster-master-id b7b7c09a232814774a259ae24aeeb8bbacaf6db6 192.168.145.160:8002 192.168.145.159:7001
[rootbogon ~]# redis-cli -a redispwd --cluster add-node --cluster-slave --cluster-master-id c63dfc9a880d9b2d48864b8690797fe75ec8e173 192.168.145.142:8000 192.168.145.160:7002加入节点后查看角色:
[rootbogon ~]# redis-cli -a redispwd -p 7000 cluster nodes
1d267c8598fa178c5aa594a7151ff7c49e271b45 192.168.145.142:800018000 slave c63dfc9a880d9b2d48864b8690797fe75ec8e173 0 1714495446733 3 connected
f04dfb05f6f2bd0d6f426d8f405633c53d26d978 192.168.145.160:800218002 slave b7b7c09a232814774a259ae24aeeb8bbacaf6db6 0 1714495448194 2 connected
473bf9546b864d493c45a453d1d34e07bc642958 192.168.145.159:800118001 slave 7fbae96055629879bfce1f2ea6419e882e84cf75 0 1714495450251 1 connected
7fbae96055629879bfce1f2ea6419e882e84cf75 192.168.145.142:700017000 myself,master - 0 1714495449000 1 connected 0-5460
b7b7c09a232814774a259ae24aeeb8bbacaf6db6 192.168.145.159:700117001 master - 0 1714495451296 2 connected 5461-10922
c63dfc9a880d9b2d48864b8690797fe75ec8e173 192.168.145.160:700217002 master - 0 1714495452324 3 connected 10923-16383
发现出现了3主3从在任意一端验证cluster集群的高可用:停掉7000的主库查看8001是否提升为主库:
[rootbogon ~]# ps -ef | grep redis
root 3522 1 0 Apr30 ? 00:00:16 redis-server 0.0.0.0:7000 [cluster]
root 3764 1 0 00:03 ? 00:00:06 redis-server 0.0.0.0:8000 [cluster]
root 3927 3181 0 01:02 pts/1 00:00:00 grep --colorauto redis
[rootbogon ~]# kill -9 3522
[rootbogon ~]# ps -ef | grep redis
root 3764 1 0 00:03 ? 00:00:06 redis-server 0.0.0.0:8000 [cluster]
root 3929 3181 0 01:03 pts/1 00:00:00 grep --colorauto redis以8000的redis为入口查看角色变化:
[rootbogon ~]# redis-cli -a redispwd -p 8000 cluster nodes
Warning: Using a password with -a or -u option on the command line interface may not be safe.
b7b7c09a232814774a259ae24aeeb8bbacaf6db6 192.168.145.159:700117001 master - 0 1714496715467 2 connected 5461-10922
f04dfb05f6f2bd0d6f426d8f405633c53d26d978 192.168.145.160:800218002 slave b7b7c09a232814774a259ae24aeeb8bbacaf6db6 0 1714496718560 2 connected
c63dfc9a880d9b2d48864b8690797fe75ec8e173 192.168.145.160:700217002 master - 0 1714496717531 3 connected 10923-16383
1d267c8598fa178c5aa594a7151ff7c49e271b45 192.168.145.142:800018000 myself,slave c63dfc9a880d9b2d48864b8690797fe75ec8e173 0 1714496573000 3 connected
7fbae96055629879bfce1f2ea6419e882e84cf75 192.168.145.142:700017000 master,fail - 1714496585074 1714496577517 1 disconnected
473bf9546b864d493c45a453d1d34e07bc642958 192.168.145.159:800118001 master - 0 1714496716504 4 connected 0-5460
发现了8001提升为了主库恢复redis的7000入口:
[rootbogon ~]# redis-cli -a redispwd -p 7000 cluster nodes
Warning: Using a password with -a or -u option on the command line interface may not be safe.
1d267c8598fa178c5aa594a7151ff7c49e271b45 192.168.145.142:800018000 slave c63dfc9a880d9b2d48864b8690797fe75ec8e173 0 1714497284618 3 connected
c63dfc9a880d9b2d48864b8690797fe75ec8e173 192.168.145.160:700217002 master - 0 1714497281543 3 connected 10923-16383
b7b7c09a232814774a259ae24aeeb8bbacaf6db6 192.168.145.159:700117001 master - 0 1714497283596 2 connected 5461-10922
f04dfb05f6f2bd0d6f426d8f405633c53d26d978 192.168.145.160:800218002 slave b7b7c09a232814774a259ae24aeeb8bbacaf6db6 0 1714497282573 2 connected
473bf9546b864d493c45a453d1d34e07bc642958 192.168.145.159:800118001 master - 0 1714497280513 4 connected 0-5460
7fbae96055629879bfce1f2ea6419e882e84cf75 192.168.145.142:700017000 myself,slave 473bf9546b864d493c45a453d1d34e07bc642958 0 1714497277000 4 connected
发现自动转换成了从角色使恢复redis的7000再次作为主角色:
[rootbogon ~]# redis-cli -p 7000 -a redispwd -c
127.0.0.1:7000 cluster failover
OK
127.0.0.1:7000 info #转换成了主角色
# Replication
role:master
connected_slaves:1 192.168.145.159端配置:
#创建配置文件目录
mkdir -p /data/cluster/7001
mkdir -p /data/cluster/8001
#创建配置文件
同上修改端口和目录即可启动主redis:
redis-server /data/cluster/7001/redis.conf
[rootbogon ~]# ps -ef | grep redis
root 3522 1 0 22:45 ? 00:00:00 redis-server 0.0.0.0:7000 [cluster]
root 3534 3181 0 22:51 pts/1 00:00:00 grep --colorauto redis查看集群信息:
同上搭建3个从集群实现redis的高可用:
启动从redis:
[rootbogon ~]# redis-server /data/cluster/8001/redis.conf
[rootbogon ~]# ps -ef | grep redis
root 3522 1 0 Apr30 ? 00:00:09 redis-server 0.0.0.0:7000 [cluster]
root 3764 1 0 00:03 ? 00:00:00 redis-server 0.0.0.0:8000 [cluster]
root 3771 3181 0 00:08 pts/1 00:00:00 grep --colorauto redis 192.168.145.160端配置:
#创建配置文件目录
mkdir -p /data/cluster/7002
mkdir -p /data/cluster/8002
#创建配置文件
同上修改端口和目录即可启动主redis:
redis-server /data/cluster/7002/redis.conf
[rootbogon ~]# ps -ef | grep redis
root 3522 1 0 22:45 ? 00:00:00 redis-server 0.0.0.0:7000 [cluster]
root 3534 3181 0 22:51 pts/1 00:00:00 grep --colorauto redis查看集群信息:
同上搭建3个从集群实现redis的高可用:
启动从redis:
[rootbogon ~]# redis-server /data/cluster/8002/redis.conf
[rootbogon ~]# ps -ef | grep redis
root 3522 1 0 Apr30 ? 00:00:09 redis-server 0.0.0.0:7000 [cluster]
root 3764 1 0 00:03 ? 00:00:00 redis-server 0.0.0.0:8000 [cluster]
root 3771 3181 0 00:08 pts/1 00:00:00 grep --colorauto redis