搭建自己的服务器环境之安装Redis

本文介绍了Redis的安装方法,包括单机和集群安装。单机安装可使用命令指定配置文件直接创建并启动容器,也可用docker-compose安装。集群安装需创建存放集群文件根目录,配置相关参数,注意防火墙端口开放,单台机器可创建伪集群,多机器则分散节点创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4. 安装redis

后续内容需要使用到docker以及docker-compose, 需要先行安装,如果还未安装,可以搜索其它文章或者查看该安装系列docker安装

4.1 单机
# 创建redis的本地挂载目录
mkdir -p /opt/redis/conf & mkdir -p /opt/redis/data
vim /opt/redis/conf/redis.conf

简单版的配置文件内容如下

## 配置文件最基本的修改
## 只允许本机访问
## bind 127.0.0.1
## 修改为允许所有机器访问
bind 0.0.0.0
## 关闭保护模式
protected-mode no
## 开启持久化同步
appendonly yes
## 开启密码访问
requirepass 123456

启动方式

  • 使用命令指定配置文件直接创建并启动容器

    # 拉取镜像
    docker pull redis:6.0
    # 启动容器
    docker run -d --name redis -p 6379:6379 -v /opt/redis/conf/:/redis/ -v /opt/redis/data/:/data redis:6.0 redis-server /redis/redis.conf
    
    # 进入容器内部
    docker exec -it redis /bin/bash
    
    # 使用redis-cli连接测试
    redis-cli
    
    # 由于配置文件被我修改了有密码,因此需要取得授权
    auth 123456
    
    # 测试存取
    set test haha
    get test
    
  • docker-compose安装

    cd /opt/redis
    vim docker-compose.yml
    

    docker-compose.yml, 内容如下

    version: "3"
    services:
      redis:
        image: redis:6.0
        container_name: redis
        ports:
          - "6379:6379"
        volumes:
          - /etc/localtime:/etc/localtime
          - /opt/redis/conf/redis.conf:/redis.conf
          - /opt/redis/data:/data:rw
        command: "redis-server /redis.conf"
        restart: always
    

    注意需要先安装docker-compose, 启动容器

    # 进入到docker-compose.yml所在目录
    cd /opt/redis
    # 启动查看日志,是否能正常运行
    docker-compose up
    # 后台运行
    docker-compose up -d
    # 停止
    docker-compose stop
    
4.2 集群

下面的内容全部按照下面的链接中的内容来操作的,只不过根据自己的情况稍微做了微调
点击查看原文

原博主内容不错,可以收藏一波

创建存放集群文件根目录

mkdir -p /opt/redis/cluster/
cd /opt/redis/cluster/
# 先写cluster临时配置文件,主要是为了后面拷贝
vim redis-cluster.tmpl

redis-cluster.tmpl内容如下, 注意下面的ip不要填写localhost之类的,因为在容器内部的localhost,可不是宿主机的localhost

port ${PORT}
requirepass 123456
masterauth 123456
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
cluster-announce-ip 106.15.10.140
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
  • port:节点端口;
  • requirepass:添加访问认证;
  • masterauth:如果主节点开启了访问认证,从节点访问主节点需要认证;
  • protected-mode:保护模式,默认值 yes,即开启。开启保护模式以后,需配置 bind ip 或者设置访问密码;关闭保护模式,外部网络可以直接访问;
  • daemonize:是否以守护线程的方式启动(后台启动),默认 no;
  • appendonly:是否开启 AOF 持久化模式,默认 no;
  • cluster-enabled:是否开启集群模式,默认 no;
  • cluster-config-file:集群节点信息文件;
  • cluster-node-timeout:集群节点连接超时时间;
  • cluster-announce-ip:集群节点 IP,填写宿主机的 IP;
  • cluster-announce-port:集群节点映射端口;
  • cluster-announce-bus-port:集群节点总线端口。

每个 Redis 集群节点都需要打开两个 TCP 连接。一个用于为客户端提供服务的正常 Redis TCP 端口,例如 6379。还有一个基于 6379 端口加 10000 的端口,比如 16379。

第二个端口用于集群总线,这是一个使用二进制协议的节点到节点通信通道。节点使用集群总线进行故障检测、配置更新、故障转移授权等等。客户端永远不要尝试与集群总线端口通信,与正常的 Redis 命令端口通信即可,但是请确保防火墙中的这两个端口都已经打开,否则 Redis 集群节点将无法通信。

这里由于只有一台机器,所以就只能创建伪集群,三主三从都在本机进行, 用刚才前面临时创建的配置拷贝到下面创建的节点目录中

cd /opt/redis/cluster
for port in `seq 6371 6376`; do \
  mkdir -p ${port}/conf \
  && PORT=${port} envsubst < redis-cluster.tmpl > ${port}/conf/redis.conf \
  && mkdir -p ${port}/data;\
done

/opt/redis/cluster目录下创建docker-compose文件

services:
  redis-6371:
    image: redis:6.0
    container_name: redis-6371
    restart: always
    network_mode: "host"
    volumes:
      - /opt/redis/cluster/6371/conf/:/redis
      - /opt/redis/cluster/6371/data:/data
    command: redis-server /redis/redis.conf

  redis-6372:
    image: redis:6.0
    container_name: redis-6372
    network_mode: "host"
    volumes:
      - /opt/redis/cluster/6372/conf/:/redis
      - /opt/redis/cluster/6372/data:/data
    command: redis-server /redis/redis.conf

  redis-6373:
    image: redis:6.0
    container_name: redis-6373
    network_mode: "host"
    volumes:
      - /opt/redis/cluster/6373/conf/:/redis
      - /opt/redis/cluster/6373/data:/data
    command: redis-server /redis/redis.conf

  redis-6374:
    image: redis:6.0
    container_name: redis-6374
    network_mode: "host"
    volumes:
      - /opt/redis/cluster/6374/conf/:/redis
      - /opt/redis/cluster/6374/data:/data
    command: redis-server /redis/redis.conf

  redis-6375:
    image: redis:6.0
    container_name: redis-6375
    network_mode: "host"
    volumes:
      - /opt/redis/cluster/6375/conf/:/redis
      - /opt/redis/cluster/6375/data:/data
    command: redis-server /redis/redis.conf

  redis-6376:
    image: redis:6.0
    container_name: redis-6376
    network_mode: "host"
    volumes:
      - /opt/redis/cluster/6376/conf/:/redis
      - /opt/redis/cluster/6376/data:/data
    command: redis-server /redis/redis.conf

创建集群

# 先随便进入一台机器
docker exec -it redis-6371 /bin/bash
cd /usr/local/bin/

redis-cli -a 123456 --cluster create 106.15.10.140:6371 106.15.10.140:6372 106.15.10.140:6373 106.15.10.140:6374 106.15.10.140:6375 106.15.10.140:6376 --cluster-replicas 1

中途提示的时候yes一下即可,创建成功如下图
在这里插入图片描述

如果是多机器的话, 把上面创建的节点分散在多个机器分开创建即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值