python操作redis集群、redis主从+哨兵
主从+哨兵
from redis.sentinel import Sentinel
if __name__ == '__main__':
# 哨兵监听的别名,这个就是你redis配置中的名字
server_name = "mymaster"
# 设置哨兵组的IP和PORT
sentinel_list = [
("192.168.2.6", 26379),
("192.168.2.6", 26380),
("192.168.2.6", 26381),
]
# 初始化哨兵对象,并传递哨兵组的IP和端口信息
sentinel = Sentinel(sentinel_list)
# print(sentinel.discover_slaves(server_name))
# print(sentinel.discover_master(server_name))
# 从哨兵监视中获取master主库
master_client = sentinel.master_for(server_name, decode_responses=True)
# 从哨兵监视中获取slave从库
slave_client = sentinel.slave_for(server_name, decode_responses=True)
# 主库中设置值
master_client.set("username", "wangwu")
# 从库中获取值
print(slave_client.get("username"))
集群
from redis.cluster import ClusterNode
if __name__ == '__main__':
from redis import RedisCluster
# nodes = [
# {"host": "192.168.2.6", "port": 6382},
# {"host": "192.168.2.6", "port": 6383},
# {"host": "192.168.2.6", "port": 6384},
# {"host": "192.168.2.6", "port": 6385},
# ]
"""
S: 1bf7272d2b929d7a7d5080bfabfcdc1e2dee5dde 192.168.2.6:6379
S: 2553f886f985b64357d70cb581cb90206fd356e0 192.168.2.6:6380
S: 82170a4b12bb428469ee23f36b6c3b9aea14e65a 192.168.2.6:6381
M: fd85e7db8bcb89dd572bda08d832817515d74dc3 192.168.2.6:6382
M: 533580d3b0f60fe474d60439fff61536ba57b90e 192.168.2.6:6383
M: cbf4151ce9ca40fa8eea60c6242d5020c31829ce 192.168.2.6:6384
M: 6c220055c3c79f45443e388056b2ede17879d48a 192.168.2.6:6385
"""
# 可以将全部节点的信息都给定一个列表中
# 现在新版要求传的是ClusterNode对象了
nodes = [
ClusterNode("192.168.2.6", port=6382),
ClusterNode("192.168.2.6", port=6383),
ClusterNode("192.168.2.6", port=6384),
ClusterNode("192.168.2.6", port=6385),
ClusterNode("192.168.2.6", port=6379),
ClusterNode("192.168.2.6", port=6380),
ClusterNode("192.168.2.6", port=6381),
]
# 可以给定全部集群中的机器IP信息
cluster = RedisCluster(startup_nodes=nodes, decode_responses=True)
# 也可以随便指定一个节点(不管主从都可以,它会自动定位)
cluster = RedisCluster(host="192.168.2.6",port=6379, decode_responses=True)
cluster.set("test001", "哈哈哈哈")
# print(cluster.get("test001").decode())
print(cluster.get("test001"))
python操作redis集群、redis主从+哨兵的更多相关文章
- 如何搭建Redis集群(主从+哨兵)
一.什么是redis主从复制? 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器.前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点 ...
- Redis集群--Redis集群之哨兵模式
echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 搭建R ...
- Redis集群的主从切换研究
目录 目录 1 1. 前言 1 2. slave发起选举 2 3. master响应选举 5 4. 选举示例 5 5. 哈希槽传播方式 6 6. 一次主从切换记录1 6 6.1. 相关参数 6 6.2 ...
- 基于Docker搭建Redis集群(主从集群)
基于Docker搭建Redis集群(主从集群) 最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得一定是之前写的这篇 <基于Docker的Redis集群搭建> 文章 ...
- redis集群(主从配置)
市面上太多kv的缓存,最常用的就属memcache了,但是memcache存在单点问题,不过小日本有复制版本,但是使用的人比较少,redis的出现让kv内存存储的想法成为现实.今天主要内容便是redi ...
- 5分钟实现用docker搭建Redis集群模式和哨兵模式
如果让你为开发.测试环境分别搭一套哨兵和集群模式的redis,你最快需要多久,或许你需要一天?2小时?事实是可以更短. 是的,你已经猜到了,用docker部署,真的只需要十几分钟. 一.准备工作 拉取 ...
- 认识Redis集群——Redis Cluster
前言 Redis集群分三种模式:主从模式.sentinel模式.Redis Cluster.之前没有好好的全面理解Redis集群,特别是Redis Cluster,以为这就是redis集群的英文表达啊 ...
- phpredis Redis集群 Redis Cluster
官方url: https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#readme 2017年10月29日20:44:25 ...
- springboot+shiro+redis(集群redis版)整合教程
相关教程: 1. springboot+shiro整合教程 2. springboot+shiro+redis(单机redis版)整合教程 3.springboot+shiro+redis(单机red ...
- Redis 集群_主从配置_哨兵模式
首先:slaveof 可以在[从]服务器启动一个service服务,直接将[从]服务器定义为[从Redis] redis-server --slaveof <master-ip> < ...
随机推荐
- JSTL fn函数使用
首先,我们要在页面的最上方引用: <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/function ...
- HDFS核心概念与架构
HDFS简介 HDFS是Hadoop项目的核心子项目,在大数据开发中通过分布式计算对海量数据进行存储与管理,它基于流数据模式访问和处理超大文件的需求而开发,可以运行在廉价的商用服务器上,为海量数据提供 ...
- 常见python工具的基本构造-入门
一.常见库 exifread 读取图片中的信息,如GPS信息 https://blog.csdn.net/qq1198768105/article/details/128159598 tkinter ...
- Azure Data Factory(七)数据集验证之用户托管凭证
一,引言 上一篇文章中,我们讲解了 Azure Data Factory 在设置数据集类型为 Dataverse 的时候,如何连接测试.今天我们继续讲解认证方式这一块内容,打开 Link Servi ...
- 【Azure Developer】在App Service上放置一个JS页面并引用msal.min.js成功获取AAD用户名示例
问题描述 在App Service上放置一个JS页面并引用msal.min.js,目的是获取AAD用户名并展示. 问题解答 示例代码 <!DOCTYPE html> <html> ...
- js数据结构--队列
<!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...
- 一分钟了解 ChatGPT 语音对话
一.背景 近期 ChatGPT 推出新的语音和图像功能,可以与用户进行语音对话或基于用户上传的图像进行分析和对话,提供了一种新的.更直观的交互体验.用户可以更轻松地表达自己的需求.提出问题,并获得 C ...
- Unity - Windows获取屏幕分辨率、可用区域
直接搜索最多的就是使用System.Windows.Form.Screen类,但因为unity用的是mono,不能正常使用这个方法 可使用win32api获取,这里只尝试了获取主要屏幕的分辨率,而且没 ...
- JAVA多线程(3)——如何加锁
1.加锁不正确导致数据不一致:m1执行过程中,m2(未加synchronized)可以执行,因为m2不用获得锁就可以执行 1 public class TT implements Runnable { ...
- [Python] Turtle库的运用, 创作精美绘画
更多示例代码下载地址 : https://github.com/Amd794/Python123 前言 最初来自于 Wally Feurzig 和 Seymour Papert 于 1966 年所创造 ...