玩转Linux系统之轻松搭建Redis集群及报错解决方案

Redis简介

温馨提示:理论是实践的基础

Redis是开源、C语言编写的非关系型数据库软件,具有“三高”。

数据并发读写速度,读取速度最高110000次/s,写入速度最高可达81000次/s。

存储与访问能力,比Mysql等关系型数据库软件,存储量更大,具备更强的接受访问能力。

扩展性与高可用性,支持数据备份等扩展功能。


常见应用场景

1、 排行榜类应用
2、 实时分析系统
3、 日志记录等等


案例

在这里插入图片描述

环境描述:
准备6台服务器搭建Redis集群:3台为master,3台为slave ;
服务器的IP地址为:192.168.2. 1/24—192.168.2.6/24 ;
查看集群状态,并进行简单操作验证数据同步。

Redis集群架构原理
Redis Cluster采用虚拟槽分区,将所有的数据根据算法映射到0~16384整数槽内 Redis Cluster是一个无中心的结构 每个节点都保存数据和整个集群的状态

集群角色
Master:Master之间分配slots
Slave:Slave向它指定的Master同步数据

集群节点使用的TCP端口
6379端口:用于客户端的连接
16379端口:用于群集总线,群集内部各个服务器之间通信

推荐步骤:

  1. 配置IP、防火墙策略,安装软件(实验环境暂关闭防火墙,setenforce宽容模式)
    注意:若使用此脚本,必须保证软件版本及存放路径(上传到/usr目录),网卡配置文件格式匹配才行,否则,会报错。
    不适用于如下,网卡配置文件格式(行数不一样,需要改脚本)
    在这里插入图片描述
#!/bin/bash
#配置网卡
sed -i '2c BOOTPROTO=static'   /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i '17c ONBOOT=yes'   /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i '17a IPADDR=192.168.2.1'  /etc/sysconfig/network-scripts/ifcfg-ens33
ifdown ens33;ifup ens33
#关闭防火墙
systemctl stop firewalld
#宽容模式
setenforce 0
#安装Redis
#解压到指定目录
tar xf /usr/redis-3.2.9.tar.gz -C /usr/src/
#进入解压目录
cd /usr/src/redis-3.2.9/
#编译安装
make && make install
#进入软件自带脚本文件目录,运行
cd /usr/src/redis-3.2.9/utils/
./install_server.sh

执行make && make install命令编译安装过程
在这里插入图片描述
安装成功如下图:
在这里插入图片描述
注意:上述是安装到默认路径/usr/src/redis-3.2.9/,在src下面创建redis-3.2.9目录,安装在redis-3.2.9目录里面
也可以指定安装路径,安装到/usr/src/目录里面,命令如下:
在这里插入图片描述

执行软件自带脚本,交互式操作,会有提示,一般按6次Enter确认即可!
在这里插入图片描述
执行完毕,显示汇总信息。
在这里插入图片描述
2.修改Redis配置文件

vim /etc/redis/6379.conf 
重启 
/etc/init.d/redis_6379 restart

修改以下几行内容:

62行 每台服务器改成本地真实IP地址
在这里插入图片描述
722、730、736行 前面#号删掉
在这里插入图片描述
813行 前面#号删掉,后面yes改成no(表示一台服务器故障,是让群集不可用吗?no表示不这样选择)
在这里插入图片描述
重启完成后查看,监听端口状态
在这里插入图片描述

  1. 安装运行环境依赖程序(挂载系统盘省略,只在其中任意一台安装即可)
    在这里插入图片描述
    安装gem命令工具,下载的Redis软件包提供(我放在/usr所以进入这个目录安装)
    在这里插入图片描述
  2. 使用软件自带脚本创建群集
    输入如图命令,各节点的服务器IP;
    确定后,会进入交互操作,提示同意配置输入yes,输入yes即可!
    在这里插入图片描述
    完成后,如下图:
    在这里插入图片描述
  3. 查看群集状态
    [root@localhost src]# ./redis-trib.rb check 192.168.2.6:6379
    显示结果和上图一样,证明搭建群集成功。
  4. 测试群集
    (1)在192.168.2.1登录2.6的Redis服务器,存放数据meinv,键值是6,退出登录
    (2)登录到2.5的Redis服务器,能获取到刚创建的meinv数据,进一步证明群集成功,数据同步也成功。
    [root@localhost src]# redis-cli -h 192.168.2.6 -p 6379 -c
    在这里插入图片描述
    (3)基础操作
    1、查看
    查看当前数据库中所有键
    在这里插入图片描述
    查看当前数据库中所有键的数目
    在这里插入图片描述
    查看当前数据库中以m开头的键
    在这里插入图片描述
    查看当前数据库中以v开头后面包含2位的键
    在这里插入图片描述
    2、判断
    判断键是否存在
    在这里插入图片描述
    3、删除
    在这里插入图片描述
    4、获取键值的类型
    在这里插入图片描述
    5、重命名
    不检查目标key是否存在,直接改名
    在这里插入图片描述
    检查新名称是否存在,存在则不重命名(返回值是0,表示操作失败)
    在这里插入图片描述
    6、切换
    多数据库间切换(从0号数据库切换到1号,0号不显示)
    在这里插入图片描述
    多数据库间移动数据
    在0号数据库将v1移动到1号数据库
    在这里插入图片描述
    7、清除数据库内数据(提示数据库为空)
    清空当前数据库的数据(只清空1号数据库数据)
    在这里插入图片描述
    查看0号数据库,数据依然存在
    在这里插入图片描述
    清空所有数据库的数据(当前服务器所有数据库都被清空)
    在这里插入图片描述
    报错:场景,使用ansible给三台主机安装Redis,其中两台报错,如下:
    在这里插入图片描述
    解决:分析,很明显,Redis是c语言编写,主机没有c语言环境,
    1)执行命令安装
    yum -y install gcc-c++
    2)再到主机编译程序目录,执行编译,又报错
    在这里插入图片描述
    3)此时,不能用以前方法编译,因为之前有错误安装缓存,用下面命令编译

编译:make MALLOC=libc
安装:make install


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Friends of the wind

您的是我坚持原创免费作品的不懈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值