主从服务器概念:
 1. 一个master可以拥有多个slave, 一个salve又可以拥有多个slave,如此下去,形成了强大的多级服务器集群构架,
  2. master用来写数据,slave用来读数据,经统计:网站的读写比率是10:1
  3. 通过主从配置可以实现读写分离
  4. master可以读写,salve只能读
 

集群的概念:
  集群是一组相互独立的、通过高速网络互联的计算机,他们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时, 集群像是一个独立的服务器。集群配置是用于调高可用性和可缩放性, 提高对外处理的能力。
 
俩个之间的区别:
  主从服务器分工明确,主服务器用来写,从服务器用来读,一个主服务器,多个从服务器;集群就好比,多个主从服务器,子,比如:全国有多个主从服务器,分别处理各自区域的信息,这样可以减少单个主从服务器中主服务器的压力。


Python中配置Redis主从服务器

1. 第一步:配置主服务器
修改etc/redis/redis.conf
sudo vi redis.conf
bind 192.168.26.xx
 
重启redis服务
sudo service redis stop
redis_server redis.conf

2. 第二步:配置从服务器
复制etc/redis/redis.conf文件
sudo cp redis.conf ./slave.conf
 
修改redis/slave.conf
sudo vim slave.conf
 
编辑内容
bind 192.168.26.xx
salveof 192.168.26.xx 6379
port 6378
 
redis服务
sudo redis-server slave.conf
 
查看主从关系
redis-cli -h 192.168.26.xx info Replication
 

Redis集群

概念:

软件方面: 只有一台电脑,在这一台电脑上启动了多个redis服务。
硬件方面: 存在多台实体的电脑,每台电脑上都启动了一个redis或者多个redis服务。

实现原理
 Redis集群会把数据存在一个master节点,然后在这个master和其对应的salve之间进行数据同步。当读取数据时,也根据一致性哈希算法CRC16到对应的master节点获数据。只有当一个master挂掉之后,才会启动一个对应的salve节点,充当master。
 注意点:必须要3个或以上的主节点,否则在创建集群时会失败,并且当存活的主节点数小于总节点数的一半时,整个集群就无法提供服务了。
 
python和集群交互

from rediscluster import StrictRedisCluster


if __name__ == '__main__':
try:
	start_node = [
				{'host':'127.0.0.1','port':'9000'},
				{'host':'127.0.0.1','port':'9001'},
				{'host':'127.0.0.1','port':'9002'},
]
	scr = StrictRedisCluster(startup_nodes=start_nodes,
	decode_responses=True)
	result = src.set('name', 'laoli')
	print(result)
	name = src.get('name')
	print('name')
except Exception as e:
	print(e)