07-Redis 多API开发实践

发布时间 2023-12-26 20:06:08作者: EJW

Redis提供了各类开发语言的API,方便开发语言连接使用Redis。
https://redis.io/clients
官方网站提供了不同开发语言的API程序。
image

网中,给我们提供了很多种Python连接redis的API,我们通常选择有“笑脸”并且带有“星号”的使用
这里我们推荐使用redis-py.

redis的多API支持

python为例

一、准备工作

安装python

 tar xf Python-3.5.2.tar.xz 
cd  Python-3.5.2
./configure
make && make install

https://redis.io/clients

2、下载redis-py-master.zip,并导入插件

unzip redis-py-master.zip
cd redis-py-master

python3 setup.py install

3、安装redis-cluser的客户端程序

cd redis-py-cluster-unstable
python3 setup.py install

二、对redis的单实例进行连接操作

python3
>>>import redis
>>>r = redis.StrictRedis(host='10.0.0.11', port=6379, db=0,password='123456')
>>>r.set('lufei', 'guojialei')
True
>>>r.get('lufei')
'bar'

三、sentinel集群连接并操作

[root@db01 ~]# redis-server /data/6380/redis.conf
[root@db01 ~]# redis-server /data/6381/redis.conf
[root@db01 ~]# redis-server /data/6382/redis.conf 
[root@db01 ~]# redis-sentinel /data/26380/sentinel.conf &

导入redis sentinel包

>>> from redis.sentinel import Sentinel  
##指定sentinel的地址和端口号
>>> sentinel = Sentinel([('localhost', 26380)], socket_timeout=0.1)  
##测试,获取以下主库和从库的信息
>>> sentinel.discover_master('mymaster')  
>>> sentinel.discover_slaves('mymaster')  
##配置读写分离
#写节点
>>> master = sentinel.master_for('mymaster', socket_timeout=0.1)  
#读节点
>>> slave = sentinel.slave_for('mymaster', socket_timeout=0.1)  
###读写分离测试   key     
>>> master.set('oldboy', '123')  
>>> slave.get('oldboy')  
'123'

四、python连接rediscluster集群测试

redis cluster的连接并操作(python2.7.2以上版本才支持redis cluster,我们选择的是3.5)
https://github.com/Grokzen/redis-py-cluster

python3
>>> from rediscluster import StrictRedisCluster  
>>> startup_nodes = [{"host": "127.0.0.1", "port": "7000"}]  
### Note: decode_responses must be set to True when used with python3  
>>> rc = StrictRedisCluster(startup_nodes=startup_nodes, decode_responses=True)  
>>> rc.set("foo", "bar")  
True  
>>>   
'bar'
>>> print(rc.get("foo"))
bar

redis for Python 插件连接

链接:https://pan.baidu.com/s/1VMXWYz8lQpr2Kv0qBiYznA
提取码:jdnk