本章我们将学习redis。
redis是一种高级的存储系统,支持多种数据类型的存储,包括字符串、酸列、列表、集合和有序集合。
解压安装包
tar zxf redis-6.2.1.tar.gz
进入目录进行源码编译安装
cd redis-6.2.1/
make
make install
修改启动脚本
vim /root/redis-6.2.1/utils/install_server.sh
安装redis启动脚本
./install_server.sh
启动redis
/etc/init.d/redis_6379 start
redis-cli
常用命令 | 含义 |
---|---|
config get * | 查看配置 |
select 1 | 选择数据库 |
flushdb | 清空当前数据库 |
flushall | 清空所有数据库 |
move key 1 | 移动key |
del key | 删除 |
rename oldkey newkey | 改名 |
expire key 10 | 设置过期时间 |
persist key | 设置持久化 |
persist key | 查询 |
persist key | 判断是否存在 |
主机redis配置,使其监听所有网段
vim /etc/redis/6379.conf
/etc/init.d/redis_6379 restart
从机安装redis,并配置相关文件
vim /etc/redis/6379.conf
重启服务
/etc/init.d/redis_6379 restart
主要作用:当集群中的某个节点有故障时,可以自动的进行故障转移的操作。
监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。
提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。
自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器。
操作:
server 4中修改sentinel配置文件
cd redis-6.2.1/
ls
cp sentinel.conf /etc/redis/
cd /etc/redis/
ls
84 sentinel monitor mymaster 172.25.9.5 6379 2
125 sentinel down-after-milliseconds mymaster 10000
scp sentinel.conf server5:/etc/redis/
scp sentinel.conf server6:/etc/redis/
开始监控
redis-sentinel /etc/redis/sentinel.conf #监控
其余两台机也开始监控
server5\6:
redis-sentinel /etc/redis/sentinel.conf
down掉master
redis-cli
showdown
查看slave主机redis信息
redis-cli
info
集群就是一组相互独立的计算机,通过高速的网络组成一个计算机系统,每个集群节点都是运行其自己进程的一个独立服务器。通过网络连接组合成一个组合来共同完一个任务。
在前面的实验中,虽然做了主从复制,但单个master的容量受机器内存限制,往往要做集群来提升容量。
redis集群特点:
1.去中心化,不存在中心节点或者代理节点;
2.没有统一的入口,集群内部的节点是相互通信的(PING-PONG机制),每个节点都是一个redis实例;
3.redis-cluster 投票容错机制判断节点是否能够正常使用,少数过半判断节点down掉则判定节点down。
4.哈希槽:集群内置了16384个slot(哈希槽),将所有的物理节点映射到了这16384[0-16383]个slot上,或者说把这些slot均等的分配给了各个节点。注意:当任意一个节点挂掉后,集群将无法使用。
5.redis集群最多有16384个节点。
创建集群目录
cd /usr/local/
mkdir cluster
cd cluster
mkdir 7000 7001 7002 7003 7004 7005
编辑各个节点配置文件
cd 7000
vim redis.conf
启动集群
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes
redis-server redis.conf
ps ax
cp 7000/redis.conf 7001/
cp 7000/redis.conf 7002/
cp 7000/redis.conf 7003/
cp 7000/redis.conf 7004/
cp 7000/redis.conf 7005/
yum install tcl
redis-cli --cluster create --help
redis-cli --cluster create --cluster-replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 #创建集群并配对
redis-cli -c -p 7000
set name westos
get name
注意:重新启动集群需要进入指定集群目录
脚本创建集群
cd /root/redis-6.2.1/utils/create-cluster
./create-cluster start
ps ax
./create-cluster create
redis-cli --cluster create --help #查看用法