
linux8 redis集群槽+docker
发布日期:2025-04-07 08:17:32
浏览次数:5
分类:精选文章
本文共 2889 字,大约阅读时间需要 9 分钟。
Docker私有仓库搭建及常见问题解析
Docker pull hello-world失败,一键解决方案
Docker pulling "hello-world"会失败?别担心,简单修改镜像名即可解决!若还是有其他问题,请继续阅读。
Redis-Cluster 集群搭建指南
背景
在分布式系统中,Redis-Cluster如何解决高并发与大数据存储问题?
- 并发问题
- 推чивtwitter开源 Redis团队实现
- 数据过大
- 单机存存不下,需分布式解决方案
- 正确方案
- 数据分片存储至多个Redis节点,通过分区槽位分配
Redis-Cluster搭建步骤
环境准备
准备6个Redis节点配置文件,分别对应7000-7005端口。快速生成节点配置文件
mkdir -p /opt/redis/data/{7000,7001,7002,7003,7004,7005}sed "s/7000/7001/g" redis-7000.conf > redis-7001.conf...
- 启动Redis节点
- 数据分配与集群节点管理
- 使用Ruby脚本工具自动分配slot(基于
redis-trib.rb
) - 集群状态监控(Redis Sentinel)
- 配置 Sentinel检测主节点状态
- 启动Sentinel
- 查看集群状态
- 下载 Ruby 解释器
- 编译安装
- 环境变量配置
- 安装Redis客户端 gem
- 错误提示Failed to execute command
CLUSTERDOWN
onhash
slot - 解决方法使用
redis-trib.rb
分配哈希槽/opt/redis-4.0.10/src/redis-trib.rb fix 127.0.0.1:7005
- 运行交互式容器
- Ubuntu
- CentOS
- 后台运行容器
- 查看容器日志
- 删除容器记录
- 删除单个容器
- 批量删除
- 运行CentOS镜像并安装Vim
- 提交镜像并下载
- 导入镜像并指定标签
- 虚拟机(Hypervisor)
- 一整套操作系统,资源分配复杂
- Docker容器
- 过程级虚拟化,资源占用轻量
- 主要区别
- Hypervisor:完整的系统
- Docker:基于镜像的运行环境
- 环境配置管理
- 使用Ansible/SaltStack自动化配置,确保一致性
- 快速迭代
- 基于镜像构建容器,动态调整配置
- 查看最新日志
docker logs -f
- 指定日志级别
docker logs -l --force --time false 容器id
- 公开镜像
- 私有镜像
- 通过Dockerfile构建镜像
- 登录DockerHub
- 推送镜像
- 启动Registry镜像
- 修改配置文件
- 重启Docker服务
- 推送镜像
redis-server redis-7000.conf...
/opt/redis-4.0.10/src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
sentinel monitor master1 127.0.0.1 7000 2sentinel down-after-milliseconds master1 30000
redis-server redis-26379.conf
redis-cli -p 7000 cluster inforedis-cli -p 7000 cluster nodes
Ruby与Redis交互
安装Ruby环境
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
tar -zxvf ruby-2.3.1.tar.gzcd ruby-2.3.1./configure --prefix=/opt/ruby231make && make install
vim /etc/profilesource /etc/profile
gem install redis-3.3.0.gem
Redis-Cluster常见问题
问题1: Slot未服务
Docker容器管理实用指南
基本操作
docker run -it ubuntu /bin/bash
docker run -it centos /bin/bash
docker run -d centos /bin/sh -c "while true; do echo '服务器运行中' && sleep 1; done"
docker logs -f 容器id
docker rm 容器id
docker rm -a
Docker镜像操作
自定义镜像
docker run -it centos /bin/bashyum install -y vim
docker commit 5c2 s20/centos-vimdocker imagesdocker save s20/centos-vim:latest /opt/s20-centos-vim.tar.gz
docker load < /opt/s20-centos-vim.tar.gzdocker tag 621 liuyang/s20-centos-vim
Docker容器与虚拟化对比
Docker环境一致性
整体优化方案
Docker日志优化
Docker镜像下载方式
docker pull hello-world
docker pull 192.168.230.132:5000/s20-hello-world
FROM centosCOPY CentOS-Base.repo /etc/yum.repos.d/RUN yum clean all && yum install python-dev
Docker仓库管理
推送镜像
docker login
docker push yuchao163/centos-entrypoint-exec:latest
Docker私有仓库搭建
配置私有仓库
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
vim /etc/docker/daemon.json
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"], "insecure-registries":["192.168.230.132:5000"]}
systemctl restart docker
docker push 192.168.230.132:5000/s20-hello-world
这篇文章涵盖了Docker的基础操作、镜像管理、集群配置及常见问题解决思路,希望能为Docker初学者提供清晰的指导!
发表评论
最新留言
不错!
[***.144.177.141]2025年04月26日 22时16分55秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
linux 技巧:使用 screen 管理你的远程会话
2023-02-01
Linux 探索之旅 | 第五部分第六课:一朝 Shell 函数倾,斗转星移任我行
2023-02-01
Linux 操作系统启动流程以及trouble shooting思路
2023-02-01
linux 整理
2023-02-01
Linux 文件与目录管理/tree命令
2023-02-01
Linux 文件权限
2023-02-01
Linux 文件目录管理命令
2023-02-01
Linux 文件目录详解
2023-02-01
Linux 文件系统
2023-02-01
Linux 文件系统详解
2023-02-01
Linux 文本编辑常用快捷键
2023-02-01
Linux 日常常用命令总结
2023-02-01
Linux 日志服务与日志管理详解
2023-02-01
Linux 显示磁盘空间使用情况的命令:df
2023-02-01
Linux 最常用命令(简单易学,但能解决 95% 以上的问题)
2023-02-01
linux 服务 指定用户,linux指定用户名自启动服务
2023-02-01
Linux 服务器上安装和使用 Redis,只需这 4 步!
2023-02-01
Linux 服务器启动流程详解
2023-02-01
Linux 服务器启动流程详解
2023-02-01