Python实现各种中间件的连接

目录
  • 连接数据库
    • 1、连接Redis单节点
    • 2、连接Redis cluster集群 
    • 3、连接Redis哨兵集群

连接数据库

Redis连接  

1、连接Redis单节点

import redis
"""
连接redis ConnectionPool 方式连接
"""
def connRedis(self):
    pool=redis.ConnectionPool(host='172.16.1.2',password='',db=2, port=6379) #按具体情况填写参数
    r=redis.StrictRedis(connection_pool=pool)
    r.set("test_name","admin")
    print(r.get('test_name'))

2、连接Redis cluster集群 

python 操作redis 集群 用redis模块不行,需要导入模块

#!/usr/bin/env python
#coding:utf-8
 
 
from rediscluster import StrictRedisCluster
import sys
 
def redis_cluster():
    redis_nodes =  [{'host':'192.168.1.2','port':6378},
                    {'host':'192.168.1.2','port':6380},
                    {'host':'192.168.1.2','port':6381},
                    {'host':'192.168.1.2','port':6382},
                    {'host':'192.168.1.2','port':6383},
                    {'host':'192.168.1.2','port':6384},
                    {'host':'192.168.1.2','port':6385}
                   ]
    try:
        redisconn = StrictRedisCluster(startup_nodes=redis_nodes)
    except Exception,e:
        print "Connect Error!"
        sys.exit(1)
 
    redisconn.set('name','admin')
    print "name is: ", redisconn.get('name')
 
redis_cluster()

3、连接Redis哨兵集群

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import redis
from redis.sentinel import Sentinel
# 连接哨兵服务器(主机名也可以用域名)
sentinel = Sentinel([('172.31.0.2', 5001),
                     ('172.31.0.3', 5001),
                     ('172.31.0.4', 5001),
                     ('172.31.0.5', 5001)
             ],
                    socket_timeout=0.5)
# 获取主服务器地址
master = sentinel.discover_master('mymaster')
print(master)
# 输出:('172.31.0.2', 5001)
# 获取从服务器地址
slave = sentinel.discover_slaves('mymaster')
print(slave)
# 输出:[('172.31.3', 5001), ('172.31.0.4', 5001), ('172.31.0.5', 5001)]
# 获取主服务器进行写入
master = sentinel.master_for('mymaster', socket_timeout=0.5, password='redis_auth_pass', db=15)
w_ret = master.set('foo', 'bar')
# 输出:True
# # 获取从服务器进行读取(默认是round-roubin)
slave = sentinel.slave_for('mymaster', socket_timeout=0.5, password='redis_auth_pass', db=15)
r_ret = slave.get('foo')
print(r_ret)
# # 输出:bar

以上就是Python实现各种中间件的连接实现的详细内容,更多关于Python连接中间件的资料请关注我们其它相关文章!

(0)

相关推荐

  • python爬虫框架scrapy代理中间件掌握学习教程

    目录 代理的使用场景 使用 HttpProxyMiddleware 中间件 代理的使用场景 编写爬虫代码的程序员,永远绕不开就是使用代理,在编码过程中,你会碰到如下情形: 网络不好,需要代理: 目标站点国内访问不了,需要代理: 网站封杀了你的 IP,需要代理. 使用 HttpProxyMiddleware 中间件 本次的测试站点依旧使用 http://httpbin.org/,通过访问 http://httpbin.org/ip 可以获取当前请求的 IP 地址. HttpProxyMiddlew

  • Python Django中间件,中间件函数,全局异常处理操作示例

    本文实例讲述了Python Django中间件,中间件函数,全局异常处理操作.分享给大家供大家参考,具体如下: 应用名/middleware.py(定义中间件类,中间件函数.文件名可以任意): from django.http import HttpResponse # 定义中间件类. (类名可以任意,但类中的方法名是固定的) class TestMiddleware(object): '''中间件类''' def __init__(self): '''服务器重启之后,接收第一个请求时调用(只会

  • Python Flask请求扩展与中间件相关知识总结

    一.请求扩展 1.before_request 作用: 类比django中间件中的process_request,在请求到来执行路由函数之前先执行. 但是如果有多个顺序是从上往下执行. 应用: 基于它做用户登录认证 注意: 如果before_request的返回值不是None的清空下, 返回的而是别的值, 那么后续的请求都不会执行,本次请求直接返回, 如果定义了after_request那么会接着它执行, 最终本次请求响应结束. @app.before_request def process_r

  • 详解Python的Django框架中的中间件

    什么是中间件 我们从一个简单的例子开始. 高流量的站点通常需要将Django部署在负载平衡proxy之后. 这种方式将带来一些复杂性,其一就是每个request中的远程IP地址(request.META["REMOTE_IP"])将指向该负载平衡proxy,而不是发起这个request的实际IP. 负载平衡proxy处理这个问题的方法在特殊的 X-Forwarded-For 中设置实际发起请求的IP. 因此,需要一个小小的中间件来确保运行在proxy之后的站点也能够在 request.

  • Python实现各种中间件的连接

    目录 连接数据库 1.连接Redis单节点 2.连接Redis cluster集群 3.连接Redis哨兵集群 连接数据库 Redis连接 1.连接Redis单节点 import redis """ 连接redis ConnectionPool 方式连接 """ def connRedis(self):     pool=redis.ConnectionPool(host='172.16.1.2',password='',db=2, port=6

  • python查看FTP是否能连接成功的方法

    本文实例讲述了python查看FTP是否能连接成功的方法.分享给大家供大家参考.具体如下: #!/usr/local/bin/python #-*- coding: UTF-8 -*- #################################################################### # python 查看FTP是否能连接成功 ##################################################################

  • Python基于Pymssql模块实现连接SQL Server数据库的方法详解

    本文实例讲述了Python基于Pymssql模块实现连接SQL Server数据库的方法.分享给大家供大家参考,具体如下: 数据库版本:SQL Server 2012. 按照Python版本来选择下载pymssql模块,这样才能连接上sql server. 我安装的python版本是3.5 ,64位的,所以下载的pymssql模块是:pymssql-2.1.3-cp35-cp35m-win_amd64.whl 我把文件下载后放到E盘,安装pymssql模块: C:\Users\Administr

  • python针对mysql数据库的连接、查询、更新、删除操作示例

    本文实例讲述了python针对mysql数据库的连接.查询.更新.删除操作.分享给大家供大家参考,具体如下: 连接 一 代码 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","root","root","db_test01" ) # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 execute(

  • python 利用pywifi模块实现连接网络破解wifi密码实时监控网络

    python 利用pywifi模块实现连接网络破解wifi密码实时监控网络,具体内容如下: import pywifi from pywifi import * import time def CrackWifi(password): wifi = pywifi.PyWiFi() iface = wifi.interfaces()[0] # 取一个无限网卡 # 是否成功的标志 isok = True if(iface.status()!=const.IFACE_CONNECTED): profi

  • Python字符串的拆分与连接详解

    目录 拆分字符串 无参数拆分 指定分隔符 使用 Maxsplit 限制拆分 连接和连接字符串 与+运算符连接 在 Python 中从列表到字符串 .join() 生活中几乎没有什么保证:死亡.税收和需要处理字符串的程序员.字符串可以有多种形式.它们可以是非结构化文本.用户名.产品描述.数据库列名称,或者我们使用语言描述的任何其他内容. 由于字符串数据几乎无处不在,因此掌握有关字符串的交易工具非常重要.幸运的是,Python 使字符串操作变得非常简单,尤其是与其他语言甚至旧版本的 Python 相

  • python中使用正则表达式的连接符示例代码

    前言 我们在前面的例子里,我们学习使用集合里字符或非集合里的字符,这时都是要把每个字符写出来的,但是有时需要把26个小写字母都放到集合里,那么按集合的方法,得输入26次,一个一个键入去,这样比较花时间,也容易出错,那么有没有更好的方法呢?这个是有的,就是使用正则表达式的连接符的功能:-,比如表示26个小写字符,就使用[a-z]就可以了. 本文详细的给大家介绍了关于python使用正则表达式的连接符的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 例子如下: #pyth

  • Python如何使用paramiko模块连接linux

    python程序需要连接linux时,需要使用密码或者秘钥验证以登录os进行命令操作或者文件传输,python中实现此功能的模块为paramiko;下面是该模块的基础用法 下面是通过密码进行linux登录执行命令和文件传输示例 import paramiko #python程序需要批量管理linux时需要借助paramilo模块登录linux执行命令或者传输文件,下面是最简单的登录主机执行命令 ssh_client = paramiko.SSHClient() #创建连接对象 ssh_clien

  • 基于python模拟TCP3次握手连接及发送数据

    源码如下 from scapy.all import * import logging logging.getLogger('scapy.runtime').setLevel(logging.ERROR) target_ip = '192.168.1.1' target_port = 80 data = 'GET / HTTP/1.0 \r\n\r\n' def start_tcp(target_ip,target_port): global sport,s_seq,d_seq #主要是用于TC

  • python实现字符串连接的三种方法及其效率、适用场景详解

    python字符串连接的方法,一般有以下三种: 方法1:直接通过加号(+)操作符连接 website = 'python' + 'tab' + '.com' 方法2:join方法  listStr = ['python', 'tab', '.com'] website = ''.join(listStr) 方法3:替换  website = '%s%s%s' % ('python', 'tab', '.com') 下面再来说一下三种方法的不同 方法1,使用简单直接,但是网上不少人说这种方法效率低

随机推荐