Redis简单安装脚本
#!/bin/bash
# 检查系统类型
if [ -f /etc/os-release ]; then
. /etc/os-release
OS_NAME=$NAME
OS_VERSION=$VERSION_ID
else
echo "无法识别操作系统"
exit 1
fi
echo "当前操作系统: $OS_NAME $OS_VERSION"
# 根据操作系统选择安装命令
if [[ &q...
分类目录归档:数据库
#!/bin/bash
# 检查系统类型
if [ -f /etc/os-release ]; then
. /etc/os-release
OS_NAME=$NAME
OS_VERSION=$VERSION_ID
else
echo "无法识别操作系统"
exit 1
fi
echo "当前操作系统: $OS_NAME $OS_VERSION"
# 根据操作系统选择安装命令
if [[ &q...
sentinel模式基本可以满足一般生产的需求,具备高可用性。但是当数据量过大到一台服务器存放不下的情况时,主从模式或sentinel模式就不能满足需求了,这个时候需要对存储的数据进行分片,将数据存储到多个Redis实例中。cluster模式的出现就是为了解决单机Redis容量有限的问题,将Redis的数据根据一定的规则分配到多台机器。
Redis 的哨兵和主从模式基本已经可以实现高可用和读写分离 ,但是在这种模式下每台 Redis 服务器都存储相同的数据,浪...
主从模式是三种模式中最简单的,在主从复制中,数据库分为2类:主数据库和从数据库
主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库
从数据库一般都是只读的,并且接收主数据库同步过来的数据
一个master可以拥有多个slave,但是一个slave只能对应一个master
slave挂了不影响其他slave的读和master的读和写,重新启动后会将数据从master同步过来
master挂了以后,不影响slave的读,但redis...
哨兵是一个分布式系统,你可以在一个架构中运行多个哨兵进程,这些进程使用流言协议来接收关于Master主服务器是否下线的信息,并使用投票协议来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master。
当我们的主服务器宕机后,要手动的去切换主从模式,这样的人工干预,费事费力,还会造成一段时间我们的服务不能使用。所有我们要使用哨兵模式来解决这一问题。
哨兵是对Redis的系统的运行情况的监控,它是一个独立进程,功能有二个:...
Redis是一种基于键值对(key-value)的NoSQL数据库。
比一般键值对数据库强大的地方,Redis中的value支持string(字符串)、hash(哈希)、 list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、 HyperLogLog、GEO(地理信息定位)等多种数据结构,因此 Redis可以满足很多的应用场景。
而且因为Redis会将所有数据都存放在内存中,所以它的读写性能非常出色。
不仅如此,Redis还可以将内存的数据...
#基础配置
datadir=/data/datafile
socket=/var/lib/mysql/mysql.sock
log-error=/data/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character_set_server=utf8
#允许任意IP访问
bind-address = 0.0.0.0
#是否支持符号链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录,为0不开启
#symbolic-lin...
一个数据库由很多表构造成,每个表对应不同的业务,垂直切分是指按业务将表进行分类,分布到不同的数据库上面,这样也就将数据或者说压力分担到不同的库上面。
基于表或字段划分,表结构不同。我们有单库的分表,也有多库的分表,如下图所示
注意:有紧密关联关系的表应该在一个库里,相互没有关联关系的表可以分到不同的库里面
换句话说:就是我们很多库合在一起组成一个完整的数据库系统(这个不同到集群哦)。
基...
因为MyCAT只能路由、分发,不能把多个数据库里面的数据进行同步,所以要数据同步必须还要使用MySQL的读写分离,主从复制。
MySQL主从又叫Replication、AB复制。简单讲就是A与B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,实现数据实时同步。有这样几个关键点:
1)MySQL主从是基于binlog,主上需开启binlog才能进行主从;
2)主从过程大概有3个步骤;
3)主将更改操作记录到binlog里;
4)从将主...
配置文件位置/usr/local/mycat/conf/users/{用户名}.user.json
。这个配置文件主要是用来配置MyCAT的登录用户的,也就是我们连接8066这个端口的用户信息。
{
"dialect": "mysql",
"ip": null,
"password": "123456",
&...
前面我们已经介绍过了mysql的主从同步和mycat的安装及相关配置文件的介绍,现在我们来配置下具体的读写分离
操作。
我们现在master
库中创建一张t_user
表,因为主从的关系,slave
中也会同步创建该表。
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
&...