主从服务器概念:
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)