您现在的位置是:数据库 >>正文
通过 Docker-Compose 快速部署 Redis 保姆级教程
数据库37433人已围观
简介一、概述Redis全称:Remote Dictionary Server,即远程字典服务器)是一个开源的高性能键值数据库和缓存系统。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 --version1.2.3.4.5.6.7.8.9.10.11.12.2)部署 docker-compose
复制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 --version1.2.3.4.三、创建网络
复制# 创建 ,注意不能使用hadoop_network ,要不然启动hs2服务的时候会有问题 !建站模板 !! docker network create hadoop-network # 查看 docker network ls1.2.3.4.5.四 、Redis 编排部署
1)下载 Redis
下载地址 :http://download.redis.io/releases/
复制wget http://download.redis.io/releases/redis-7.0.3.tar.gz1.2)配置
config/master/redis.conf 复制bind 0.0.0.0 daemonize yes logfile "/usr/local/redis/redis.log" dir /opt/apache/redis/data masterauth 123456 requirepass 123456 appendonly yes1.2.3.4.5.6.7.参数解释:
复制bind # 监听ip,多个ip用空格分隔,监听所有的IP地址 daemonize yes # 允许后台启动 logfile # 日志路径 dir # 数据库备份文件存放目录 masterauth # slave连接master密码,master可省略 requirepass # 设置master连接密码 ,slave可省略 appendonly # 在/opt/apache/redis/data目录生成appendonly.aof文件,将每一次写操作请求都追加到appendonly.aof 文件中1.2.3.4.5.6.7. config/slave/redis.conf 复制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 yes1.2.3.4.5.6.7.8.参数解释:
复制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 文件中1.2.3.4.5.6.7.8.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.log1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.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_HOME1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.开始构建镜像
复制# 需要查看构建镜像详细过程则需要加上 --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:不缓存1.2.3.4.5.6.7.8.9.10.11.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: true1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.6)开始部署
复制docker-compose -f docker-compose.yaml up -d # 查看 docker-compose -f docker-compose.yaml ps1.2.3.4.
五 、简单测试验证
复制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 replication1.2.3.4.5.6.7.8.9.10.11.
【温馨提示】master节点可读可写,高防服务器slave是只读的。
六、常用的 Redis 客户端命令
下面是 Redis 常用的客户端命令 :
SET key value: 设置字符串类型的键值对。GET key: 获取指定 key 的值 。DEL key: 删除指定的 key 。INCR key: 将指定 key 的值加 1 。DECR key: 将指定 key 的服务器租用值减 1 。EXISTS key: 判断 key 是否存在。EXPIRE key seconds: 设置 key 的过期时间,以秒为单位 。TTL key: 获取 key 的剩余生存时间,以秒为单位。KEYS pattern: 查找所有符合给定模式的 key。FLUSHALL: 删除所有 key。还有一些高级命令,可以用于处理 Redis 的复杂数据结构和实现事务等功能 :
LPUSH key value: 将一个元素添加到列表的头部。源码库RPUSH key value: 将一个元素添加到列表的尾部。LPOP key: 弹出并返回列表的头部元素。RPOP key: 弹出并返回列表的尾部元素 。SADD key members: 将一个或多个元素添加到集合中 。SMEMBERS key: 返回集合中的所有成员 。ZADD key score member: 将元素和分值添加到有序集合中。ZREVRANGE key start stop: 反向获取有序集合中指定分值范围内的所有成员 。MULTI: 开始事务。EXEC: 执行事务中所有命令。WATCH key: 监视指定 key 。如果在执行事务期间该 key 发生了变化 ,事务将被取消 。以上是 Redis 中的常用客户端命令,掌握这些命令的使用可以更好地利用 Redis 进行数据存储和处理 。
Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“算法与编程”。http://www.bzli.cn/html/985c7898936.html
相关文章
如何构建 Exchange 服务器恢复策略以克服勒索软件攻击
数据库当前,对于内部部署 Exchange 服务器的勒索软件攻击已经非常常见,因为它们存储了敏感和机密信息,以及业务数据。攻击者经常利用漏洞来访问组织的网络,并窃取或加密数据以勒索赎金。即使攻击者没有成功加 ...
【数据库】
阅读更多天马AMOLED屏幕(领先一步的高端屏幕解决方案)
数据库AMOLEDActiveMatrixOrganicLightEmittingDiode)屏幕作为一种新型显示技术,近年来在智能手机、电视等领域迅速崛起。天马AMOLED屏幕以其卓越的显示效果和先进的技 ...
【数据库】
阅读更多电脑玩原神遇到的问题及解决方法(探索神奇世界,解决游戏中常见错误)
数据库原神是一款备受欢迎的开放世界角色扮演游戏,然而,许多玩家在使用电脑玩原神时常常遇到各种问题和错误,这不仅影响了游戏体验,还导致了许多不必要的困扰。本文将针对电脑玩原神常见的错误进行探讨,并提供相应的解 ...
【数据库】
阅读更多
热门文章
最新文章
友情链接
- SKG抽油烟机质量评测(全面分析SKG抽油烟机的性能与可靠性)
- 戴尔推出更高性能的PowerEdge产品组合 助力企业加速取得AI成果
- 小米膜的优点和特点(为你的手机屏幕保驾护航)
- 倍轻松牌子的品质与性能评估(解析倍轻松牌子的创新科技与用户体验)
- 使用Mac分区U盘安装Win10系统教程(详解Mac电脑如何分区U盘并安装Windows10系统)
- 昊诚电池(以昊诚电池怎么样为主题的研究及评价分析)
- 如何找回ID账号和密码?(有效方法帮助你找回丢失的账号和密码)
- 昇腾AI异构计算架构CANN 6.0全新开放升级,全面释放AI生产力
- 紫光云柳义利:通过可复制的行业云服务模式,助力数字化转型迈入新阶段
- 神舟k710c评测(体验神舟k710c,畅享高性能办公娱乐利器) 香港物理机源码库亿华云网站建设企业服务器云服务器b2b信息平台