您的位置:首页 > 数据库 > Redis

Redis主从配置与集群的搭建

2019-09-15 21:15 381 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_44621066/article/details/100864456

一、主从

数据如果只依赖一台服务器完成大量用户的数据库连接操作,必然会出现问题,如数据的丢失。所以通过主从数据库,实现数据库的读写分离,分担了一台服务器的压力。在一台服务器上部署多个数据库,将这台作为主数据库,只负责数据库的写操作;另一台服务器上同样部署多个数据库,作为从数据库,只负责数据库的读操作。
进入redis安装路径下,修改配置文件

二、Redis主从配置

(1)修改主服务配置

sudo vim redis.conf
# 修改bind信息 bind ip 127.0.0.1
bind 172.16.44.99 127.0.0.1

(2)添加从服务配置

sudo cp redis.conf slave.conf  # mac下默认为replica
# 因为复制了redis.conf,bind信息可不修改
# 修改端口号,可以改为6398
port 6398
# 在指定的主从模块中,按照提示的语法添加
# slaveof <master_ip> <master_port>
# Mac中为: replicaof <master_ip> <master_port>
slaveof 172.16.44.99 6379

(3)重启主服务,启动从服务

# 方法1:使用kill 杀死
ps aux|grep redis  # 查看pid
kill -9 pid
# 方法2:停止redis服务
sudo server redis stop # 测试mac中不可用
# 重启主服务
sudo redis-server redis.conf
# 启动重服务
sudo redis-server slave.conf

(4)查看主从关系

# redis-cli -h master_ip info replication
redis-cli -h 172.16.44.99 info replication

mac

ubuntu

(5)使用主从

# 确保主从服务都开启
ps aux|grep redis
# 主
redis-cli -h ip -p master_port
# 从
redis-cli -h ip -p slave_port

在主中写入

在从中读取

三、集群

集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。 当请求到来首先由负载均衡服务器处理,把请求转发到另外的一台服务器上。

Redis集群:
软件层面:只有一台电脑,在这一台电脑上启动了多个redis服务。

硬件层面:存在多台实体的电脑,每台电脑上都启动了一个redis或者多个redis服务。

1、集群配置文件

文件名:xxxx.conf
内容:
port 7005
bind 172.16.0.223
daemonize yes
pidfile 7005.pid
# 是否使用集群
cluster-enabled yes
# 集群配置文件
cluster-config-file 7005_node.conf
# 集群超时时间
cluster-node-timeout 15000
# 备份相关
appendonly yes

启动配置服务

2、创建集群

(1)拷贝命令
redis的安装包中包含了redis-trib.rb,⽤于创建集群
将它复制到/usr/local/bin中,可以在任意目录调用此命令

# ubuntu
sudo cp /usr/share/doc/redis-tools/examples/redis-trib.rb /usr/local/bin/
# mac
sudo cp /usr/local/redis-5.0.5/src/redis-trib.rb /usr/local/bin/

(2)安装ruby环境
因为redis-trib.rb是⽤ruby开发的

# ubuntu
sudo apt-get install ruby
# Mac
brew install ruby

(3)先查看⾃⼰的 gem 源是什么地址

gem source -l --

如果是https://rubygems.org/ 就需要更换

gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

通过 gem 安装 redis 的相关依赖

sudo gem install redis

(4)运行命令创建集群

redis-trib.rb create --replicas 1 ip:port ip:port ...

1主1从,三个节点(Node)

3、集群与Python交互

安装redis-py-cluster模块

pip install redis-py-cluster

与Python的交互:

# 1.导入模块
from rediscluster import StrictRedisCluster

if __name__ == "__main__":
# 2.组织集群的ip and port
nodes = [
{"host": "192.168.53.144", "port
3ff7
": "7000"},
{"host": "192.168.53.144", "port": "7001"},
{"host": "192.168.53.144", "port": "7002"}
]
try:
# 3.创建集群实例
src = StrictRedisCluster(startup_nodes=nodes)
except Exception as e:
print(e)

# 4.操作集群
result = src.set("age", 15)
print(result)  # True

在终端中获取

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: