ITPub博客

首页 > 数据库 > NoSQL > redis单机多实例,主从及哨兵集群

redis单机多实例,主从及哨兵集群

原创 NoSQL 作者:yleizzz 时间:2021-02-25 15:24:45 0 删除 编辑


Redis 单机多实例部署方法十分简单,只要复制多个 redis 配置文件即可。需要注意每个实例的端口不能冲突。

redis_6380.conf  redis_6381.conf 分别监听6380端口 和 6381 端口

修改非常简单。。只要改配置文件中的port及pidfile参数

cp redis.conf redis_6380.conf

$ vim /etc/redis/redis_6382.conf port 6380 daemonize yes pidfile /var/run/redis_6380.pid

====================

redis_6381.conf 也和上面一样改一下对应的参数


启动redis 6380端口

/usr/local/redis/redis-5.0.7/bin/redis-server /usr/local/redis/redis-5.0.7/redis_6380.conf &

启动redis 6381端口

/usr/local/redis/redis-5.0.7/bin/redis-server /usr/local/redis/redis-5.0.7/redis_6381.conf &


通过ps -ef|grep redis

查看redis是否启动成功


============================主从配置==================================

主从的配置。配置在本机上

修改配置文件参数,

#核心参数slaveof,master的ip 及 port  如果同时搭建了哨兵 会因为高可用切换。哨兵会重写这个值

slaveof 127.0.0.1 6380

redis重启

/usr/local/redis/redis-5.0.7/bin/redis-server /usr/local/redis/redis-5.0.7/redis_6381.conf

查看状态

info replication


==========================哨兵配置===========================

复制多个哨兵配置文件。。修改配置文件就可以启动哨兵, 环境有限,在单机上搭建集群

cp sentinel.conf sentinel_26380.conf

cp sentinel.conf sentinel_36380.conf

cp sentinel.conf sentinel_36380.conf


修改配置参数 核心的配置参数

port 26380

sentinel monitor mymaster 127.0 .0 .1 6380 2

logfile "/usr/local/redis/redis_sentinel.log"

pidfile "/var/run/redis-sentinel.pid"

#myid 这个值 复制过去的时候 需要删除。。让哨兵自动产生。这样才能成为一个集群,这个值不能重复

sentinel myid b9654be67fb4ddff54046ab68bb8936731584437


按照上面这个配置。在修改另外两个 配置文件

重启哨兵

启动命令

/usr/local/redis/redis-5.0.7/bin/redis-server /usr/local/redis/redis-5.0.7/sentinel_26380.conf --sentinel


查看哨兵状态

info sentinel


所有的都搭建完成之后 架构如下图  三台哨兵集群,一套redis主从


=====================哨兵链接============================

单机版redis的链接方式

import redis

from redis.sentinel import Sentinel

#访问redis

conn = redis.Redis(host="127.0.0.1", port=6380,password="")

conn.set("x2","hello")

val = conn.get("x2")

print(val)

print (1)


哨兵集群的链接方式

import redis

from redis.sentinel import Sentinel

#访问哨兵

#哨兵集群信息 ip 端口

sentinel = Sentinel([('127.0.0.1', 26380),('127.0.0.1', 36380),('127.0.0.1', 46380)])

# 获取主服务器redis地址

master = sentinel.discover_master('mymaster')

print(master)

 # 获取从服务器redis地址

slave = sentinel.discover_slaves('mymaster')

print(slave)

#主服务器写入

master = sentinel.master_for('mymaster', password='', db=0)

w_ret = master.set('x4', 'hello4')

#从服务器读取

slave = sentinel.slave_for('mymaster',  password='', db=0)

r_ret = slave.get('x4')

print(r_ret)






来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30127122/viewspace-2759387/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-02-03

  • 博文量
    101
  • 访问量
    184279