redis的多实例

[root@cen7_17 ~]# ls /apps/redis/
bin  data  etc  log  run
[root@cen7_17 ~]# tree /apps/redis/
/apps/redis/
├── bin
│   ├── redis-benchmark
│   ├── redis-check-aof -> redis-server
│   ├── redis-check-rdb -> redis-server
│   ├── redis-cli
│   ├── redis-sentinel -> redis-server
│   └── redis-server
├── data
│   └── dump.rdb
├── etc
│   └── redis.conf
├── log
│   └── redis-6379.log
└── run
    └── redis_6379.pid

5 directories, 10 files
[root@cen7_17 ~]# 
[root@cen7_17 ~]# systemctl stop redis
[root@cen7_17 ~]# systemctl status redis
● redis.service - Redis persistent key-value database
   Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled)
   Active: failed (Result: signal) since Tue 2021-06-29 08:58:14 EDT; 3s ago
  Process: 28597 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCCESS)
  Process: 28484 ExecStart=/apps/redis/bin/redis-server /apps/redis/etc/redis.conf --supervised systemd (code=killed, signal=QUIT)
 Main PID: 28484 (code=killed, signal=QUIT)
   Status: "Ready to accept connections"

Jun 29 08:28:30 cen7_17.yzl systemd[1]: Starting Redis persistent key-value database...
Jun 29 08:28:30 cen7_17.yzl systemd[1]: Started Redis persistent key-value database.
Jun 29 08:58:14 cen7_17.yzl systemd[1]: Stopping Redis persistent key-value database...
Jun 29 08:58:14 cen7_17.yzl systemd[1]: redis.service: main process exited, code=killed, status=3/QUIT
Jun 29 08:58:14 cen7_17.yzl systemd[1]: Stopped Redis persistent key-value database.
Jun 29 08:58:14 cen7_17.yzl systemd[1]: Unit redis.service entered failed state.
Jun 29 08:58:14 cen7_17.yzl systemd[1]: redis.service failed.
#redis.conf文件

[root@cen7_17 ~]# cd /apps/redis/etc/
[root@cen7_17 etc]# ls
redis.conf
[root@cen7_17 etc]# cp redis.conf redis_6379.conf
[root@cen7_17 etc]# grep dump.rdb redis_6379.conf 
dbfilename dump.rdb
[root@cen7_17 etc]# sed -i 's/dbfilename dump.rdb/dbfilename dump_6379.rdb/' redis_6379.conf 
[root@cen7_17 etc]# grep dump_6379.rdb redis_6379.conf 
dbfilename dump_6379.rdb
[root@cen7_17 etc]# ls
redis_6379.conf  redis.conf
[root@cen7_17 etc]# cp redis_6379.conf redis_6380.conf
[root@cen7_17 etc]# cp redis_6379.conf redis_6381.conf
[root@cen7_17 etc]# sed -i 's/dbfilename dump_6379.rdb/dbfilename dump_6380.rdb/' redis_6380.conf 
[root@cen7_17 etc]# sed -i 's/dbfilename dump_6379.rdb/dbfilename dump_6381.rdb/' redis_6381.conf 
[root@cen7_17 etc]# grep "^dbfilename" redis_6379.conf 
dbfilename dump_6379.rdb
[root@cen7_17 etc]# grep "^dbfilename" redis_6380.conf 
dbfilename dump_6380.rdb
[root@cen7_17 etc]# grep "^dbfilename" redis_6381.conf 
dbfilename dump_6381.rdb
[root@cen7_17 etc]# cd ..
[root@cen7_17 redis]# tree
.
├── bin
│   ├── redis-benchmark
│   ├── redis-check-aof -> redis-server
│   ├── redis-check-rdb -> redis-server
│   ├── redis-cli
│   ├── redis-sentinel -> redis-server
│   └── redis-server
├── data
│   └── dump.rdb
├── etc
│   ├── redis_6379.conf
│   ├── redis_6380.conf
│   ├── redis_6381.conf
│   └── redis.conf
├── log
│   └── redis-6379.log
└── run
    └── redis_6379.pid

5 directories, 13 files
[root@cen7_17 redis]# grep  redis-6379.log etc/redis_6380.conf 
logfile /apps/redis/log/redis-6379.log
[root@cen7_17 redis]# sed -i 's/redis-6379.log/redis-6380.log/' etc/redis_6380.conf 
[root@cen7_17 redis]# sed -i 's/redis-6379.log/redis-6381.log/' etc/redis_6381.conf 
[root@cen7_17 redis]# grep redis_6379.pid etc/redis_6380.conf 
pidfile /apps/redis/run/redis_6379.pid
[root@cen7_17 redis]# sed -i 's/redis_6379.pid/redis_6380.pid/' etc/redis_6380.conf 
[root@cen7_17 redis]# sed -i 's/redis_6379.pid/redis_6381.pid/' etc/redis_6381.conf 
[root@cen7_17 redis]# grep redis_6380.pid etc/redis_6380.conf 
pidfile /apps/redis/run/redis_6380.pid
[root@cen7_17 redis]# grep redis_6381.pid etc/redis_6381.conf 
pidfile /apps/redis/run/redis_6381.pid
#端口

[root@cen7_17 ~]# cd /apps/redis/etc/
[root@cen7_17 etc]# ls
redis_6379.conf  redis_6380.conf  redis_6381.conf  redis.conf
[root@cen7_17 etc]# vim redis_6380.conf 
[root@cen7_17 etc]# grep 6379 redis_6380.conf 
# Accept connections on the specified port, default is 6379 (IANA #815344).
port 6379
# tls-port 6379
# cluster-config-file nodes-6379.conf
# cluster-announce-tls-port 6379
[root@cen7_17 etc]# sed -i 's/6379/6380/' redis_6380.conf 
[root@cen7_17 etc]# grep 6380 redis_6380.conf 
# Accept connections on the specified port, default is 6380 (IANA #815344).
port 6380
# tls-port 6380
pidfile /apps/redis/run/redis_6380.pid
logfile /apps/redis/log/redis-6380.log
dbfilename dump_6380.rdb
# cluster-config-file nodes-6380.conf
# cluster-announce-tls-port 6380
# cluster-announce-bus-port 6380
[root@cen7_17 etc]# sed -i 's/6379/6381/' redis_6381.conf 
[root@cen7_17 etc]# grep 6381 redis_6381.conf 
# Accept connections on the specified port, default is 6381 (IANA #815344).
port 6381
# tls-port 6381
pidfile /apps/redis/run/redis_6381.pid
logfile /apps/redis/log/redis-6381.log
dbfilename dump_6381.rdb
# cluster-config-file nodes-6381.conf
# cluster-announce-tls-port 6381
[root@cen7_17 etc]# 
#redis.service文件

[root@cen7_17 ~]# cat /lib/systemd/system/redis_6379.service
[Unit]
Description=Redis persistent key-value database
After=network.target

[Service]
ExecStart=/apps/redis/bin/redis-server /apps/redis/etc/redis.conf --supervised systemd
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target

[root@cen7_17 ~]# grep redis.conf /lib/systemd/system/redis_6379.service
ExecStart=/apps/redis/bin/redis-server /apps/redis/etc/redis.conf --supervised systemd
[root@cen7_17 ~]# sed -i 's/redis.conf/redis_6379.conf/' /lib/systemd/system/redis_6379.service
[root@cen7_17 ~]# grep redis_6379.conf /lib/systemd/system/redis_6379.service
ExecStart=/apps/redis/bin/redis-server /apps/redis/etc/redis_6379.conf --supervised systemd

[root@cen7_17 ~]# sed -i 's/redis.conf/redis_6380.conf/' /lib/systemd/system/redis_6380.service
[root@cen7_17 ~]# sed -i 's/redis.conf/redis_6381.conf/' /lib/systemd/system/redis_6381.service
[root@cen7_17 ~]# grep redis_6380.conf /lib/systemd/system/redis_6380.service
ExecStart=/apps/redis/bin/redis-server /apps/redis/etc/redis_6380.conf --supervised systemd
[root@cen7_17 ~]# grep redis_6381.conf /lib/systemd/system/redis_6381.service
ExecStart=/apps/redis/bin/redis-server /apps/redis/etc/redis_6381.conf --supervised systemd
#启动

[root@cen7_17 ~]# systemctl start redis_6379.service redis_6380.service redis_6381.service
[root@cen7_17 ~]# ss -ntl
State      Recv-Q Send-Q            Local Address:Port                           Peer Address:Port              
LISTEN     0      128                           *:22                                        *:*                  
LISTEN     0      100                   127.0.0.1:25                                        *:*                  
LISTEN     0      511                           *:6379                                      *:*                  
LISTEN     0      511                           *:6380                                      *:*                  
LISTEN     0      511                           *:6381                                      *:*                  
LISTEN     0      128                        [::]:22                                     [::]:*                  
LISTEN     0      100                       [::1]:25                                     [::]:*                  

[root@cen7_17 ~]# systemctl status redis_6379.service 
● redis_6379.service - Redis persistent key-value database
   Loaded: loaded (/usr/lib/systemd/system/redis_6379.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2021-06-29 09:32:00 EDT; 10min ago
 Main PID: 29168 (redis-server)
   Status: "Ready to accept connections"
   CGroup: /system.slice/redis_6379.service
           └─29168 /apps/redis/bin/redis-server 0.0.0.0:6379

Jun 29 09:32:00 cen7_17.yzl systemd[1]: Starting Redis persistent key-value database...
Jun 29 09:32:00 cen7_17.yzl systemd[1]: Started Redis persistent key-value database.
[root@cen7_17 ~]# systemctl status redis_6380.service 
● redis_6380.service - Redis persistent key-value database
   Loaded: loaded (/usr/lib/systemd/system/redis_6380.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2021-06-29 09:39:32 EDT; 2min 42s ago
 Main PID: 29277 (redis-server)
   Status: "Ready to accept connections"
   CGroup: /system.slice/redis_6380.service
           └─29277 /apps/redis/bin/redis-server 0.0.0.0:6380

Jun 29 09:39:32 cen7_17.yzl systemd[1]: Starting Redis persistent key-value database...
Jun 29 09:39:32 cen7_17.yzl systemd[1]: Started Redis persistent key-value database.
[root@cen7_17 ~]# systemctl status redis_6381.service 
● redis_6381.service - Redis persistent key-value database
   Loaded: loaded (/usr/lib/systemd/system/redis_6381.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2021-06-29 09:39:32 EDT; 2min 46s ago
 Main PID: 29278 (redis-server)
   Status: "Ready to accept connections"
   CGroup: /system.slice/redis_6381.service
           └─29278 /apps/redis/bin/redis-server 0.0.0.0:6381

Jun 29 09:39:32 cen7_17.yzl systemd[1]: Starting Redis persistent key-value database...
Jun 29 09:39:32 cen7_17.yzl systemd[1]: Started Redis persistent key-value database.

[root@cen7_17 ~]# redis-cli -h 10.0.0.17 -p 6380 -a 123456 info
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Server
redis_version:6.2.2

[root@cen7_17 ~]# redis-cli -h 10.0.0.17 -p 6381 -a 123456 info
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Server
redis_version:6.2.2
[root@cen7_17 ~]# 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Redis实例和Keepalived是一种常见的高可用性解决方案,用于确保Redis服务的持续可用性。在这种架构中,多个Redis实例运行在不同的主机上,并使用Keepalived来监控和管理这些实例。 首先,让我们了解一下Redis实例的工作原理。每个Redis实例都有自己的配置文件和端口号,它们可以在同一台主机上或不同的主机上运行。每个实例都有自己的数据集,并独立地处理客户端请求。 要实现高可用性,我们可以使用Keepalived来监控这些Redis实例,并在主实例发生故障时自动切换到备用实例。Keepalived是一个基于VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)的工具,它可以确保多个主机之间的故障转移。 下面是一种使用Redis实例和Keepalived的架构示例: 1. 配置多个Redis实例:在每个主机上安装和配置多个Redis实例,确保它们使用不同的端口号和配置文件。每个实例可以通过不同的配置文件指定不同的端口号、数据目录和日志文件等。 2. 安装并配置Keepalived:在每个主机上安装Keepalived,并配置一个共享虚拟IP(VIP)。Keepalived会监控Redis实例的运行状态,并在主实例发生故障时将VIP切换到备用实例。 3. 配置Keepalived的监控和故障切换:在Keepalived配置文件中,指定要监控的Redis实例和故障切换的条件。例如,可以设置当主实例无法正常响应时,将VIP切换到备用实例。 4. 测试高可用性:启动Redis实例和Keepalived,并进行故障测试。模拟主实例故障时,观察Keepalived是否能够正确地将VIP切换到备用实例,并确保客户端可以继续访问Redis服务。 需要注意的是,Redis实例和Keepalived只能提供故障转移和高可用性保证,并不能解决数据同步和负载均衡的问题。如果需要在多个Redis实例之间进行数据同步或负载均衡,可以考虑使用Redis Sentinel或Redis Cluster等其他解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

y_zilong

一分钱的肯定

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值