• 编译安装redis及配置多实例


    yum安装是这种十分简单的方法我们就不在提及了,今天我们来做一下redis的编译安装
    在这里插入图片描述

    Redis源码包官方下载链接:http://download.redis.io/releases/
    在这里插入图片描述

    一、编译安装:

    安装依赖包

    dnf -y install make gcc jemalloc-devel systemd-devel
    
    • 1

    如果是Ubuntu系统请安装以下包

    apt -y install make gcc libjemalloc-dev libsystemd-dev
    
    • 1

    下载源码并解压

    wget http://download.redis.io/releases/redis-6.2.8.tar.gz
    tar -zxf redis-6.2.8.tar.gz
    
    • 1
    • 2

    编译安装,默认使用systemd文件

    cd redis-6.2.8
    make -j 2 USE_SYSTEMD=yes PREFIX=/data/redis install
    # -j 根据机器的CPU核数配置来编译,速度更快
    
    • 1
    • 2
    • 3

    配置环境变量

    echo 'PATH=/data/redis/bin:$PATH' > /etc/profile.d/redis.sh
    . /etc/profile.d/redis.sh 
    
    • 1
    • 2

    目录结构
    在这里插入图片描述

    准备相关目录和配置文件

    mkdir /data/redis/{etc,log,data,run}
    cp /root/redis-6.2.8/redis.conf /data/redis/etc/
    
    • 1
    • 2

    前台启动redis

    redis-server /data/redis/etc/redis.conf
    
    • 1

    图一
    查看端口启动情况
    在这里插入图片描述
    消除启动redis时有的Warring信息,可以用下边方法消除告警,但非强制消除(可选)

    vim /etc/sysctl.conf
    net.core.somaxconn = 1024
    vm.overcommit_memory = 1
    
    sysctl -p
    
    • 1
    • 2
    • 3
    • 4
    • 5

    开启redis多实例
    在新开的窗口下执行此命令

    redis-server --port 6380
    
    • 1

    在这里插入图片描述
    再次查看端口启动情况
    在这里插入图片描述
    在这里插入图片描述
    创建redis用户和设置数据目录权限

    useradd -r -s /sbin/nologin redis
    
    #设置目录权
    chown -R redis.redis /data/redis
    
    • 1
    • 2
    • 3
    • 4

    创建redis服务的services文件
    (可以复制centos8利用yum安装redis生成的redis.service文件,进行修改)

    [Unit]
    Description=Redis persistent key-value database
    After=network.target
    
    [Service]
    User=redis
    Group=redis
    ExecStart=/data/redis/bin/redis-server /data/redis/etc/redis.conf --supervised systemd
    ExecStop=/bin/kill -s QUIT $MAINPID
    Type=notify
    RuntimeDirectory=redis
    RuntimeDirectoryMode=0755
    LimitNOFILE=1000000
    
    [Install]
    WantedBy=multi-user.target
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    通过service方式启动redis

    systemctl daemon-reload
    systemctl enable --now redis
    
    • 1
    • 2

    验证客户端连接redis
    在这里插入图片描述
    修改redis的连接为全部可连接,并且为redis配置密码
    修改redis的配置文件

    vim /data/redis/etc/redis.conf
    
    bind 0.0.0.0
    requirepass 123456
    
    • 1
    • 2
    • 3
    • 4

    修改完毕后重启redis实例

    systemctl restart redis
    
    • 1

    验证
    在这里插入图片描述

    二、redis多实例

    测试环境中经常使用多实例,需要指定不同实例的相应端口,配置文件,日志文件等相关配置
    以编译安装为列实现redis多实例

    查看目录结构
    在这里插入图片描述
    先停止现有的redis实例

    systemctl stop redis.service
    
    • 1

    修改redis配置文件同时新增两份

    mv /data/redis/etc/redis.conf /data/redis/etc/redis6379.conf
    sed 's/6379/6380/' /data/redis/etc/redis6379.conf > /data/redis/etc/redis6380.conf 
    sed 's/6379/6381/' /data/redis/etc/redis6379.conf > /data/redis/etc/redis6381.conf 
    
    • 1
    • 2
    • 3

    修改配置文件的所有者和所属组

    chown -R redis.redis /data/redis/etc/
    
    • 1

    同理修改service文件

    mv /lib/systemd/system/redis.service /lib/systemd/system/redis6379.service
    
    vim /lib/systemd/system/redis6379.service
    ExecStart=/data/redis/bin/redis-server /data/redis/etc/redis6379.conf --supervised systemd
    
    cp /lib/systemd/system/redis6379.service /lib/systemd/system/redis6380.service
    cp /lib/systemd/system/redis6379.service /lib/systemd/system/redis6381.service
    
    sed -i 's/redis6379/redis6380/' /lib/systemd/system/redis6380.service
    sed -i 's/redis6379/redis6381/' /lib/systemd/system/redis6381.service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    重启服务

    systemctl daemon-reload
    systemctl enable --now redis6379.service
    systemctl enable --now redis6380.service
    systemctl enable --now redis6381.service
    
    • 1
    • 2
    • 3
    • 4

    验证
    在这里插入图片描述

  • 相关阅读:
    python常用库之数据库orm框架之SQLAlchemy
    Oracle 进阶详细案例教程笔记
    Vue前后端交互、生命周期、组件化开发
    Maven的下载安装配置教程(详细图文)
    水稻叶病害数据集(目标检测,yolo使用)
    vue中记录滚动条位置
    CVPR 2022 Paper Reading List
    ES6 入门教程 7 数值的扩展 7.9 BigInt 数据类型
    Linux- open() & lseek()
    复合查询与过滤查询的区别,记ElasticSearch检索时踩过的”坑“!
  • 原文地址:https://blog.csdn.net/m0_51277041/article/details/134461473