本文介绍: Redis全称:Remote Dictionary Server,即远程字典服务器)是一个开源高性能键值数据库缓存系统。Redis数据结构支持字符串哈希表、列表集合有序集合类型。同时,Redis 还提供了丰富的操作指令例如 GET/SET、INCR/DECR、HGET/HSET、LPUSH/RPUSH、SADD/SMEMBERS、ZADD/ZRANGE 等。除此之外,Redis支持事务过期时间发布/订阅特性能够方便地实现各种高效的数据存储读取方案

一、概述

Redis(全称:Remote Dictionary Server,即远程字典服务器)是一个开源高性能键值数据库缓存系统。Redis 的数据结构支持字符串哈希表、列表、集合有序集合类型。同时,Redis 还提供了丰富的操作指令例如 GET/SET、INCR/DECR、HGET/HSET、LPUSH/RPUSH、SADD/SMEMBERS、ZADD/ZRANGE 等。除此之外,Redis 还支持事务、过期时间发布/订阅特性能够方便地实现各种高效的数据存储读取方案

在这里插入图片描述

想了解更多redis知识点可以参考我这篇文章Redis原理介绍与环境部署(主从模式、哨兵模式、集群模式)

二、前期准备

1)部署 docker

# 安装yum-config-manager配置工具
yum -y install yum-utils

# 建议使用阿里yum源:(推荐
#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装docker-ce版本
yum install -y docker-ce
# 启动开机启动
systemctl enable --now docker
docker --version

2)部署 dockercompose

curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose
docker-compose --version

三、创建网络

# 创建,注意不能使用hadoop_network,要不然启动hs2服务时候会有问题!!!
docker network create hadoop-network

# 查看
docker network ls

四、Redis 编排部署

1)下载 Redis

下载地址http://download.redis.io/releases/

wget http://download.redis.io/releases/redis-7.0.3.tar.gz

2)配置

bind 0.0.0.0
daemonize yes
logfile "/usr/local/redis/redis.log"
dir /opt/apache/redis/data
masterauth 123456
requirepass 123456
appendonly yes

参数解释

bind            # 监听ip多个ip空格分隔监听所有的IP地址
daemonize yes   # 允许后台启动
logfile         # 日志路径
dir             # 数据库备份文件存放目录
masterauth      # slave连接master密码master省略
requirepass     # 设置master连接密码slave省略
appendonly       # 在/opt/apache/redis/data目录生成appendonly.aof文件,将每一次操作请求追加appendonly.aof 文件
bind 0.0.0.0
daemonize yes
logfile "/usr/local/redis/redis.log"
dir /opt/apache/redis/data
replicaof redis-master 6379
masterauth 123456
requirepass 123456
appendonly yes

参数解释

bind            # 监听ip多个ip空格分隔监听所有的IP地址
daemonize yes   # 允许后台启动
logfile         # 日志路径
dir             # 数据库备份文件存放目录
replicaof       #  replicaof用于追随某个节点redis,被追随的节点为主节点,追随的为从节点就是设置master节点
masterauth      # slave连接master密码,master可省略
requirepass     # 设置master连接密码,slave省略
appendonly       # 在/opt/apache/redis/data目录生成appendonly.aof文件,将每一次操作请求追加appendonly.aof 文件中

3)启动脚本 bootstrap.sh

#!/usr/bin/env sh

wait_for() {
    echo Waiting for $1 to listen on $2...
    sleep 1
    while ! nc -z $1 $2; do echo waiting...; sleep 1s; done
}

node_type=$1

if [ $node_type = "slave" ];then
        wait_for redis-master 6379
fi

/usr/local/bin/redis-server /usr/local/redis/redis.conf

tail -f /usr/local/redis/redis.log

4)构建镜像 Dockerfile

FROM registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/centos:7.7.1908

RUN rm -f /etc/localtime && ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone

RUN export LANG=zh_CN.UTF-8

RUN yum -y install install net-tools telnet wget nc less gcc gcc++ make

RUN mkdir /opt/apache/

# 编译安装 redis
ENV REDIS_VERSION 7.0.3
ADD redis-${REDIS_VERSION}.tar.gz /opt/apache/
ENV REDIS_HOME /opt/apache/redis
RUN ln -s /opt/apache/redis-${REDIS_VERSION} $REDIS_HOME

# 开始编译
RUN cd $REDIS_HOME && make && make install

# 创建数据目录
RUN mkdir ${REDIS_HOME}/data

# copy bootstrap.sh
COPY bootstrap.sh /opt/apache/
RUN chmod +x /opt/apache/bootstrap.sh

WORKDIR $KAFKA_HOME

开始构建镜像

# 需要查看构建镜像详细过程需要加上 --progress=plain 选项
docker build -t registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/redis:7.0.3 . --no-cache --progress=plain

# 为了方便小伙伴下载即可使用,我这里镜像文件推送阿里云的镜像仓库
docker push registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/redis:7.0.3

### 参数解释
# -t:指定镜像名称
# . :当前目录Dockerfile
# -f:指定Dockerfile路径
#  --no-cache:不缓存

5)编排 docker-compose.yaml

version: '3'
services:
  redis-master:
    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/redis:7.0.3
    container_name: redis-master
    hostname: redis-master
    restart: always
    volumes:
      - ./config/master/redis.conf:/usr/local/redis/redis.conf
    ports:
      - "36379:6379"
    #command: ["sh","-c","/opt/apache/bootstrap.sh master"]
    command: ["sh","-c","/usr/local/bin/redis-server /usr/local/redis/redis.conf ; tail -f /usr/local/redis/redis.log"]
    networks:
      - hadoop-network
    healthcheck:
      test: ["CMD-SHELL", "netstat -tnlp|grep 6379 || exit 1"]
      interval: 10s
      timeout: 20s
      retries: 3
  redis-slave:
    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/redis:7.0.3
    restart: always
    deploy:
      replicas: 2
    volumes:
      - ./config/slave/redis.conf:/usr/local/redis/redis.conf
    ports:
      - "6379"
    command: ["sh","-c","/opt/apache/bootstrap.sh slave"]
    networks:
      - hadoop-network
    healthcheck:
      test: ["CMD-SHELL", "netstat -tnlp|grep 6379  || exit 1"]
      interval: 10s
      timeout: 10s
      retries: 3

# 连接外部网络
networks:
  hadoop-network:
    external: true

6)开始部署

docker-compose -f docker-compose.yaml up -d

# 查看
docker-compose -f docker-compose.yaml ps

在这里插入图片描述

五、简单测试验证

docker exec -it redis-master bash

# 登录
redis-cli -h redis-master
# 输入密码,配置文件配置的密码
redis-master:6379> auth 123456
# 查看集群信息
redis-master:6379> info replication

# 非交互式,但是不建议,因为密码直接history可以查到,安全问题
redis-cli -h redis-master -a 123456 info replication

在这里插入图片描述

【温馨提示】master节点可读可写,slave是只读的。

六、常用的 redis 客户端命令

下面是 Redis 常用客户端命令

还有一些高级命令可以用于处理 Redis 的复杂数据结构实现事务等功能

以上是 Redis 中的常用客户端命令掌握这些命令的使用可以更好利用 Redis 进行数存储处理


通过 docker-compose 快速部署 Redis 教程就先到这里了,有任何疑问欢迎给我留言私信,可关注我公众号【大数据与云原生技术分享】加群交流私信沟通~

原文地址:https://blog.csdn.net/qq_35745940/article/details/130797119

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_44882.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注