学习开始前先了解一下
Redis是一个开源的内存数据结构存储系统,它支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等。Redis最大的特点是数据存储在内存中,因此读写速度非常快,同时也支持数据持久化,可以将数据保存到磁盘中,以便在服务器重启后恢复数据。 Redis的应用场景非常广泛,包括缓存、消息队列、计数器、排行榜、分布式锁等。Redis还支持发布/订阅模式,可以用于实现实时消息推送等功能。
Redis的优点包括: 1. 高性能:Redis的数据存储在内存中,读写速度非常快。 2. 多种数据结构:Redis支持多种数据结构,可以满足不同的应用需求。 3. 数据持久化:Redis支持数据持久化,可以将数据保存到磁盘中,以便在服务器重启后恢复数据。 4. 分布式:Redis支持分布式部署,可以通过主从复制和集群模式实现高可用性和扩展性。 5. 开源:Redis是开源的,可以自由使用和修改。
Redis的缺点包括: 1. 内存限制:由于Redis的数据存储在内存中,因此需要考虑内存限制,否则可能会导致服务器宕机。 2. 数据一致性:由于Redis的主从复制和集群模式存在一定的延迟,因此需要考虑数据一致性的问题。 3. 单线程:Redis是单线程的,因此在高并发场景下可能存在性能瓶颈。 总的来说,Redis是一个非常优秀的内存数据结构存储系统,具有高性能、多种数据结构、数据持久化、分布式等优点,广泛应用于各种场景中。
主从复制
Redis 主从复制是指将一个 Redis 服务器(主节点)的数据复制到其他 Redis 服务器(从节点)的过程。主节点负责写入数据,从节点负责读取数据,从而实现数据的高可用性和读写分离。
搭建环境:关闭防火墙 确认网段
这里有三台演示机
1.相同操作:也就是不管多少台机都要做的操作
(1):安装redis 命令 yum -y install redis
(2):配置文件 命令 vim /etc/redis.conf
bing 0.0.0.0
daemonize yes
进入redis
redis-cli
第一台查看 info replication
第二台
127.0.0.1:6379>slaveof 192.168.1.129 6379
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:192.168.1.129
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_repl_offset:71
master_link_down_since_seconds:25
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
这条命令的意思是将当前的 Redis 服务器设置为另一个 Redis 服务器的从服务器。具体来说,它将当前 Redis 服务器的复制模式设置为从服务器,并将主服务器的 IP 地址和端口号设置为 192.168.1.129 和 6379。这样,当前 Redis 服务器就会开始复制主服务器上的数据,并在主服务器更新数据时同步更新自己的数据。
第三台 和上一台一样
127.0.0.1:6379>slaveof 192.168.1.129 6379
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:192.168.1.129
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_repl_offset:71
master_link_down_since_seconds:25
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
第一台在查看
测试第一台也就是主库是否有创建功能
其他两台查看 他们都是没有创建功能的
主从复制好了 但要和哨兵搭配才是高可用
主从复制的实现过程如下: 1. 主节点将写入的数据同步到从节点; 2. 从节点接收到数据后,将数据写入自己的数据库中; 3. 从节点定期向主节点发送同步请求,获取主节点最新的数据; 4. 如果主节点宕机,从节点会自动选举一个新的主节点。
主从复制的优点包括: 1. 数据高可用性:当主节点宕机时,从节点可以自动接管主节点的工作,保证数据的可用性; 2. 读写分离:主节点负责写入数据,从节点负责读取数据,可以有效地分担主节点的负载; 3. 数据备份:从节点可以作为主节点的备份,当主节点数据丢失时,可以通过从节点进行数据恢复。 需要注意的是,主从复制并不能保证数据的实时同步,因为从节点需要定期向主节点发送同步请求,获取最新的数据。如果需要实时同步数据,可以考虑使用 Redis 集群。
2.启动哨兵
所有哨兵操作
vim /etc/redis-sentinel.conf
daemonize yes 加上这一行
sentinel monitor mymaster 192.168.1.139 6379 2 更改成主的IP
主机和哨兵启动服务 systemctl start redis-sentinel
测试
关闭主机
127.0.0.1:6379> shutdown
not connected>
两台从机宕机 等一会
在查看 第三台自动变成主了
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
第二台自动切换过去了
拜拜