创建对象,指定host、port、db与指定的服务器端口连接,其中默认host为localhost、port为6379、db为0,不同类型调用的实例方法不同,与redis命令一致,方法需要的参数与命令参数一致
- from redis import StrictRedis
- sr =StrictRedis(host='localhost', port=6379, db=0)
- # 简写:sr = StrictRedis()
方法说明
- from redis import StrictRedis
- if __name__ == '__main__':
- try: # 连接获取外部资源要使用try
- sr = StrictRedis() # 创建对象,与redis服务器建立连接
-
- add = sr.set('name', 'YY') # 增加name键,值为YY,若添加成功返回true,否则返回false
- print('是否增加成功:', add) # 输出结果
-
- get = sr.get('name') # 获取键为name的值,若存在返回值,否则返回None
- print('name的值为:', get)
-
- modify = sr.set('name', 'YX') # 修改name键的值为YX
- print('修改后name的值为:', sr.get('name'))
-
- print('获取到的键为:', sr.keys()) # 获取所有键,aa为之前命令行添加的
-
- delete = sr.delete('name')
- delete2 = sr.delete('nam')
- print('删除成功返回%d,删除失败返回%d' % (delete, delete2))
-
- except Exception as e:
- print(e)
-
- 输出:
- 若redis服务未启动,将输出如下错误
- Error 10061 connecting to localhost:6379. 由于目标计算机积极拒绝,无法连接。
-
- 启动后输出:
- 是否增加成功: True
- name的值为: b'YY'
- 修改后name的值为: b'YX'
- 获取到的键为: [b'aa', b'name']
- 删除成功返回1,删除失败返回0
主从理解
1.使用ifconfig命令查看ip
2.切换至/etc/redis目录下,执行命令sudo vi redis.conf进入文件

3.修改bind绑定的ip
4.按esc退出编辑,进入命令行模式,执行命令:wq保存并退出

1.复制redis.conf命名为slave.conf
3.执行命令sudo redis-server slave.conf启动redis服务

2.打开slave.conf并修改slave.conf中的以下内容
- 1.修改端口:port 6378
- 2.找到指定位置新增:slaveof 192.168.76.128 6379

4.查看主从关系
执行命令:redis-cli -h 192.168.76.128 info replication

1.执行命令进入master主客户端
redis-cli -h 192.168.76.128 -p 6379

2.执行命令进入slave从客户端
redis-cli -h 192.168.76.128 -p 6378

主从可以一主多从,但若同时访问量过大则不再适用,如大型企业在全国会有很多服务器(华东、华南、华中……)
集群:是一组相互独立的、通过高速网络互联的计算机,其构成了一个组,并以单一系统模式加以管理,一个客户与集群相互作用时,集群像是一个独立的服务器,集群配置是用于提高可用性和可缩放性,当请求到来时先由负载均衡服务器处理,将请求转发到另外一台服务器上
分类
在Desktop目录下创建cluster文件夹,并创建7000.conf文件

在7000.conf文件中编辑并添加如下内容
- # 端口号
- port 7000
- # 访问的ip
- bind 192.168.76.128
- # 是否以守护进程(后台)方式运行
- daemonize yes
- # pid文件
- pidfile 7000.pid
- # 是否使用集群
- cluster-enabled yes
- # 集群文件
- cluster-config-file 7000_node.conf
- # 集群的超时时间
- cluster-node-timeout 15000
- # 备份相关
- appendonly yes
复制文件7000.conf并分别命名为7001.conf、7002.conf、7003.conf、7004.conf和7005.conf

进入各个复制的文件,分别修改所选值

如7001.conf文件修改如下

切换至cluster目录,运行redis-server加载这6个配置文件
查看进程

若redis为5.0以上版本,可直接跳过该步骤,改用redis-cli创建集群
切换至redis安装目录下的src目录下,执行以下指令将redis-trib.rb拷贝到/usr/local/bin/目录下,redis-trib.r用于创建集群,复制后可在任何目录下调用次命令
sudo cp redis-trib.rb /usr/local/bin/

运行命令创建集群
redis-trib.rb create --replicas 1 192.168.76.128:7000 192.168.76.128:7001 192.168.76.128:7002 192.168.76.128:7003 192.168.76.128:7004 192.168.76.128:7005
可能运行失败,报警告warning:redis-trib.rb is not longer available,直接按提示即可

redis-cli --cluster create 192.168.76.128:7000 192.168.76.128:7001 192.168.76.128:7002 192.168.76.128:7003 192.168.76.128:7004 192.168.76.128:7005 --cluster-replicas 1
如下,创建的一主一从,三个节点

至此集群搭建成功
从上图看看出,搭建的master主服务器为7000、7001、7002,slave从服务器为7003、7004、7005
连接7000,-c表示连接到集群
连接命令:redis-cli -h 192.168.76.128 -p 7000 -c
写入数据,自动跳到了7001,写入成功

说明
安装redis-py-cluster命令:pip install redis-py-cluster
- from rediscluster import RedisCluster
- if __name__ == '__main__':
- try:
- # 构建所有的节点,redis会用CRC16算法将键和值写到某个节点上
- nodes = [
- {'host': '192.168.76.128', 'port': '7000'},
- {'host': '192.168.76.128', 'port': '7001'},
- {'host': '192.168.76.128', 'port': '7002'}
- ]
- src = RedisCluster(startup_nodes=nodes, decode_responses=True) # 构建RedisCluster对象
- result = src.set('tel', 99999) # 新增key为tel的值
- print(result)
- tel = src.get('tel') # 获取key为tel的值
- print(tel)
- except Exception as e:
- print(e)
-
- 输出:
- True
- 99999
程序运行前后命令行查看值

学习导航:http://xqnav.top/