• Redisdump Docker搭建的快速指南


    背景

    • 最近学习redis想能够将dump文件进行导入处理.
    • 看到比较好的办法都是使用ruby ,但是公司的网络太感人了.
    • 想着比较简单的办法是通过docker方式来搭建.
    • 这里简单记录一下搭建过程.

    dockerfile

    FROM redis
    RUN echo "" > /etc/apt/sources.list
    RUN echo "deb http://mirrors.aliyun.com/debian/ bullseye main non-free contrib" >> /etc/apt/sources.list
    RUN echo "deb http://mirrors.aliyun.com/debian-security/ bullseye-security main" >> /etc/apt/sources.list
    RUN echo "deb http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" >> /etc/apt/sources.list
    RUN echo "deb http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" >> /etc/apt/sources.list
    RUN cat /etc/os-release
    RUN redis-cli -v
    
    RUN apt-get update && apt-get install ruby-dev -y \
        && apt-get install make -y \
        && apt-get install procps -y \
        && apt-get install gcc -y \
        && apt-get clean \
        && rm -rf /var/lib/apt/lists/*
    
    # RUN gem sources -a http://ruby.taobao.org/
    RUN gem install redis-dump -V
    

    注意事项

    • 第一次build时总是出现异常提示如图示:
    W: Failed to fetch http://mirrors.aliyun.com/debian/dists/bullseye/InRelease  Temporary failure resolving 'mirrors.aliyun.com'
    W: Failed to fetch http://mirrors.aliyun.com/debian-security/dists/bullseye-security/InRelease  Temporary failure resolving 'mirrors.aliyun.com'
    W: Failed to fetch http://mirrors.aliyun.com/debian/dists/bullseye-updates/InRelease  Temporary failure resolving 'mirrors.aliyun.com'
    W: Failed to fetch http://mirrors.aliyun.com/debian/dists/bullseye-backports/InRelease  Temporary failure resolving 'mirrors.aliyun.com'
    
    • 简单学习了下应该是Docker内的网络没有dns解析导致的方法为:
    cd /etc/docker
    vim daemon.json
    # 添加内容
    {
      "dns": ["8.8.8.8", "114.114.114.114"]
    }
    # 重启一下docker即可
    systemctl restart docker
    

    docker build && docker save

    • 方法为:
    docker build . -t redis-dump
    docker save redis-dump |gzip > redis-dump.tar.gz 
    

    在公司内部进行使用.

    • 导入镜像以及进行简单使用
    导出为 json 注意 集群模式 我不太明白怎么导出
    docker run -it --net=host  redis-dump redis-dump -u redis://10.110.82.137 -a Password  >/deploy/redis-dump.json
    
    注意可以根据帮助尽心进行处理: 
      Try: /usr/local/bin/redis-dump show-commands
    Usage: /usr/local/bin/redis-dump [global options] COMMAND [command options] 
        -u, --uri=S                      Redis URI (e.g. redis://hostname[:port])
        -d, --database=S                 Redis database (e.g. -d 15)
        -a, --password=S                 Redis password (e.g. -a 'my@pass/word')
        -s, --sleep=S                    Sleep for S seconds after dumping (for debugging)
        -c, --count=S                    Chunk size (default: 10000)
        -f, --filter=S                   Filter selected keys (passed directly to redis' KEYS command)
        -b, --base64                     Encode key values as base64 (useful for binary values)
        -O, --without_optimizations      Disable run time optimizations
        -V, --version                    Display version
        -D, --debug
            --nosafe
    
    导入到redis中来.
    
    cat /deploy/21.30.json |  docker run -i --net=host redis-dump redis-load -n -d 15 -u redis://127.0.0.1:6379
    注意 docker run 不能有t 不然会报错:
    the input device is not a TTY
    
  • 相关阅读:
    HTTP 协议中 URI 和 URL
    @Controller、@RestController
    java selvet 初学
    RocketMQ4.4 入门进阶+实战
    Spring Cloud微服务(一):公共模块的搭建
    Spring Boot 入门(十三):集成Hasor的Dataway模块,干掉后台,自动配置接口
    Spring Boot 入门(十二):报表导出,对比poi、jxl和esayExcel的效率
    Spring Boot 入门(十一):集成 WebSocket, 实时显示系统日志
    Spring Boot 入门(十):集成Redis哨兵模式,实现Mybatis二级缓存
    Spring Boot 入门(九):集成Quartz定时任务
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/16219952.html
Copyright © 2020-2023  润新知