数据库的高可用

learner

1.实现数据库高可用

1.1 搭建策略

1.1.1 问题说明

说明:如果根据如下的配置实现数据库的代理,如果数据库主库宕机,则直接影响整个程序的执行.所以需要实现高可用机制.
高可用实现的问题:
如果实现了数据库高可用,可以自动的切换数据库,由于用户直接操作了从库,当主库启动时发现数据不一致时,主从同步的状态将会终止.
image.png

1.1.2 双机热备(双主模式)

说明:可以通过数据库双主模式实现数据库高可用.
双主模式实质都是主机,互相备份.
image.png

1.1.3 双机热备的实现

之前的配置:
主机: 192.168.126.129
从库: 192.168.126.130
现在的配置:
主机: 192.168.126.130
从库: 192.168.126.129
1).检查主库状态
image.png
2).实现数据库主从搭建
image.png

1.2 数据库高可用实现

1).编辑配置文件
image.png
2).上传配置文件:
image.png
3).重启mycat服务器

1.3 数据库高可用实测试

1.启动服务器,测试mysql数据库是否正常.
image.png
image.png
image.png
3).修改数据库中的内容,重启主数据库,检查数据是否同步
image.png
image.png
image.png

1.4 检查端口占用情况

image.png
image.png

2 Redis缓存学习

2.1 优化现有架构

说明:通过缓存服务器可以有效的提升用户的访问的效率.
注意事项:
1.缓存的数据结构 应该选用 K-V结构 只要key唯一 那么结果必然相同…
2.缓存中的数据不可能一直存储,需要定期将内存数据进行优化 LRU算法…
3.缓存要求运行速度很快, C语言实现… 运行在内存中.
4.如果缓存运行的数据在内存中,如果断电/宕机,则内存数据直接丢失. 实现内存数据的持久化操作(磁盘).
image.png

2.2 Redis缓存服务器

网址: http://www.redis.cn/

2.2.1 Redis介绍

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
nginx: 3-5万/秒
redis: 读: 11.2万/秒 写: 8.6万/秒 平均10万/秒
吞吐量: 50万/秒

2.2.2 Redis安装

1).解压redis文件
image.png
2).移动文件/修改文件
image.png
3).安装Redis
命令1: make
命令2: make install
image.png

2.2.3 修改redis.conf配置文件

1.修改IP绑定
image.png
2.关闭保护模式
image.png
3.开启后台启动
image.png

2.2.4 Redis命令

1.启动redis redis-server redis.conf
image.png
2.检查redis服务项
image.png

  1. 进入redis客户端

image.png
4.关闭redis
1).命令 redis-cli -p 6379 shutdown
2).kill命令 kill -9 pid号
image.png

2.3 SpringBoot整合Redis

2.3.1 导入jar包

image.png

2.3.2 入门案例

image.png

2.3.3 构建项目结构

image.png

阅读 121
1 声望
0 粉丝
0 条评论
1 声望
0 粉丝
宣传栏