0
点赞
收藏
分享

微信扫一扫

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


Redis简介

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

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

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

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

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

常见应用场景

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

案例

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

环境描述:
准备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命令编译安装过程

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


安装成功如下图:

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


注意:上述是安装到默认路径/usr/src/redis-3.2.9/,在src下面创建redis-3.2.9目录,安装在redis-3.2.9目录里面

也可以指定安装路径,安装到/usr/src/目录里面,命令如下:

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

执行软件自带脚本,交互式操作,会有提示,一般按6次Enter确认即可!

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


执行完毕,显示汇总信息。

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


2.修改Redis配置文件

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

修改以下几行内容:

62行 每台服务器改成本地真实IP地址

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


722、730、736行 前面#号删掉

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


813行 前面#号删掉,后面yes改成no(表示一台服务器故障,是让群集不可用吗?no表示不这样选择)

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


重启完成后查看,监听端口状态

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

  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


举报

相关推荐

0 条评论