在python中使用redis哨兵和集群操作

redis哨兵

作用: 看护redis实例进程,进行自动故障转移. 保证高可用.
功能:

  • Monitoring: 监控. 使用心跳技术, 定时询问. 使用另外的端口跟哨兵通讯.
  • Notification: 通知.
  • Automatic failover: 自动故障转移.
  • Configuration provider: 提供配置.
    解析: redis哨兵其实就是一个应用程序. redis-sentinel

配置(跟redis配置基本一样):
bind 127.0.0.1 # 哨兵启动绑定的Ip
port 26380 # 哨兵监听的端口
daemonize yes # 是否以守护进程的方式启动
logfile /var/log/redis-sentinel.log
#mymaster: sentinel监控的redis主从名称
#127.0.0.1 6380 主从服务器中任意一台机器地址
#2: 将这个主服务器判断为失效至少需要2个哨兵同意

sentinel monitor mymaster 127.0.0.1 6380 2

#down-after-milliseconds: 认为服务器已经断线所需的毫秒数。
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
#failover-timeout: 故障转移的缓冲时间
sentinel failover-timeout mymaster 180000

启动: redis-sentinel sentinel.conf

注意:
1.至少要开启三个哨兵.
2.最好运行在不同的机器.
3.多于指定数量的哨兵认为故障, 才发生故障转移.

使用哨兵操作redis

配置哨兵列表

REDIS_SENTINELS = [
(‘127.0.0.1’, ‘26380’),
(‘127.0.0.1’, ‘26381’),
(‘127.0.0.1’, ‘26382’),
]
REDIS_SENTINEL_SERVICE_NAME = ‘mymaster’

使用哨兵返回redis服务器对象

from redis.sentinel import Sentinel

  • 创建哨兵对象
    _sentinel = Sentinel(REDIS_SENTINELS)
  • 使用哨兵对象返回master redis服务对象
    redis_master = _sentinel.master_for(REDIS_SENTINEL_SERVICE_NAME)
  • 使用哨兵对象返回slave redis服务对象
    redis_slave = _sentinel.slave_for(REDIS_SENTINEL_SERVICE_NAME)

使用redis服务器对象操作redis

redis_master.set(‘a’, 100)
print(redis_slave.get(‘a’))

.redis分布式集群

1.官方提供的分布式集群方案.
2.跟redis主从不同, 分布式集群中的每台redis只保存部分数据.
3.集群方案中已经有哨兵机制, 不需要我们自己配置.
注意:
1.主redis至少要三台以上. 一般开启6个redis实例
2.k-v存储在哪台redis, 由集群决定.
3.不支持事务
4.不支持多键操作,如mset

连接集群客户端命令:
redis-cli -c -p

集群对象操作redis

配置集群列表

REDIS_CLUSTER = [
{‘host’: ‘127.0.0.1’, ‘port’: ‘7000’},
{‘host’: ‘127.0.0.1’, ‘port’: ‘7001’},
{‘host’: ‘127.0.0.1’, ‘port’: ‘7002’},
]

创建集群对象

from rediscluster import StrictRedisCluster
redis_cluster = StrictRedisCluster(startup_nodes=REDIS_CLUSTER)

使用集群对象操作redis数据库

  • 可以将redis_cluster就当作普通的redis客户端使用
    redis_cluster.set(‘a’, 100)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值