5、python 操作redis

1、直接操作

import redis
pool=redis.ConnectionPool(host='49.234.159.231',port=9221,password='9U6rQ19kET10iKYa')
conn=redis.Redis(connection_pool=pool)
name=conn.get('name')
print(name)								#输出为b'nulang',二进制格式
conn.set('age',20)
age=conn.get('age'),
print(age.decode())							#转码后输出为20

2、pub/sub---发布订阅

#订阅,例:
import redis
pool=redis.ConnectionPool(host='49.234.159.231',port=26379)
conn=redis.Redis(connection_pool=pool)
pub=conn.pubsub()
pub.subscribe('+sdown','-sdown')
while True:
    data=pub.parse_response()
    print(data)

3、sentinel

from redis.sentinel import Sentinel
#获取主从节点
sentinel = Sentinel([('49.234.159.231',26379)],socket_timeout=0.1)
master_ip = sentinel.discover_master('mymaster')
slave_ip =sentinel.discover_slaves('mymaster')

#操控master或slave进行读写
master = sentinel.master_for('mymaster', socket_timeout=0.1)
master.set('foo','bar') 					#获取主redis服务器并进行写入
slave = sentinel.slave_for('mymaster', socket_timeout=0.1)
slave.get('foo')						#获取从redis服务器进行获取

4、redis与sentinel结合实现failover的变化监控

import redis
from redis.sentinel import Sentinel
sentinel = Sentinel([('49.234.159.231',26379)],socket_timeout=0.1)

pool=redis.ConnectionPool(host='49.234.159.231',port=26379)
conn=redis.Redis(connection_pool=pool)
pub=conn.pubsub()
pub.subscribe('+sdown','-sdown')
for i in pub.listen():
    if i['type'] == 'message':
        master_ip = sentinel.discover_master('mymaster')
        slave_ip = sentinel.discover_slaves('mymaster')
        pool1 = redis.ConnectionPool(host='49.234.159.231', port=9221, password='9U6rQ19kET10iKYa')
        conn1=redis.Redis(connection_pool=pool1)
        conn1.set('master',str(master_ip))
        conn1.set('slave',str(slave_ip))
        conn1.publish('failover','change')
posted @ 2021-05-14 19:05  狂风怒浪丶  阅读(103)  评论(0)    收藏  举报