zoukankan      html  css  js  c++  java
  • 在Windows Docker中安装Redis

    本文的前提是本地Docker环境已经配置成功,参考Windows 10安装Docker并使用私钥连接AWS EC2

    1. 参考资料

    https://hub.docker.com/_/redis
    https://redis.io/topics/config
    https://my.oschina.net/u/4313128/blog/4074047

    2. 运行docker pull redis:6.2.4下载image

    3. 下载redis.conf,并修改默认密码

    # IMPORTANT NOTE: starting with Redis 6 "requirepass" is just a compatibility
    # layer on top of the new ACL system. The option effect will be just setting
    # the password for the default user. Clients will still authenticate using
    # AUTH <password> as usually, or more explicitly with AUTH default <password>
    # if they follow the new protocol: both will work.
    #
    requirepass 123456
    

    4. 修改redis.conf配置使宿主机能够访问redis server

    # ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
    # internet, binding to all the interfaces is dangerous and will expose the
    # instance to everybody on the internet. So by default we uncomment the
    # following bind directive, that will force Redis to listen only on the
    # IPv4 loopback interface address (this means Redis will only be able to
    # accept client connections from the same host that it is running on).
    #
    # IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
    # JUST COMMENT OUT THE FOLLOWING LINE.
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #bind 127.0.0.1
    bind 0.0.0.0
    
    # Protected mode is a layer of security protection, in order to avoid that
    # Redis instances left open on the internet are accessed and exploited.
    #
    # When protected mode is on and if:
    #
    # 1) The server is not binding explicitly to a set of addresses using the
    #    "bind" directive.
    # 2) No password is configured.
    #
    # The server only accepts connections from clients connecting from the
    # IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain
    # sockets.
    #
    # By default protected mode is enabled. You should disable it only if
    # you are sure you want clients from other hosts to connect to Redis
    # even if no authentication is configured, nor a specific set of interfaces
    # are explicitly listed using the "bind" directive.
    #protected-mode yes
    protected-mode no
    

    5. 启动redis server

    运行docker run -v {CONFIG PATH}:/usr/local/etc/redis --name test-redis -p 6379:6379 redis:6.2.4 redis-server /usr/local/etc/redis/redis.conf命令,终端将显示成功日志

    1:C 12 Jun 2021 15:52:32.212 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    1:C 12 Jun 2021 15:52:32.212 # Redis version=6.2.4, bits=64, commit=00000000, modified=0, pid=1, just started
    1:C 12 Jun 2021 15:52:32.212 # Configuration loaded
    1:M 12 Jun 2021 15:52:32.212 * monotonic clock: POSIX clock_gettime
                    _._
               _.-``__ ''-._
          _.-``    `.  `_.  ''-._           Redis 6.2.4 (00000000/0) 64 bit
      .-`` .-```.  ```/    _.,_ ''-._
     (    '      ,       .-`  | `,    )     Running in standalone mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
     |    `-._   `._    /     _.-'    |     PID: 1
      `-._    `-._  `-./  _.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |           https://redis.io
      `-._    `-._`-.__.-'_.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |
      `-._    `-._`-.__.-'_.-'    _.-'
          `-._    `-.__.-'    _.-'
              `-._        _.-'
                  `-.__.-'
    
    1:M 12 Jun 2021 15:52:32.213 # Server initialized
    1:M 12 Jun 2021 15:52:32.213 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
    1:M 12 Jun 2021 15:52:32.214 * Ready to accept connections
    1:M 12 Jun 2021 15:58:48.100 * DB saved on disk
    

    或者使用docker run -v {CONFIG PATH}:/usr/local/etc/redis --name test-redis -p 6379:6379 -d redis:6.2.4 redis-server /usr/local/etc/redis/redis.conf在后台启动redis server

    6. 使用redis-cli连接redis server

    执行docker ps找到正在运行的redis container

    运行docker exec -it {CONTAINER ID} redis-cli -a {PASSWORD}

    若不打开持久化模式,每次redis关闭时数据将丢失,加上--appendonly yes即可开启持久化,同时-v {DATA PATH}:/data可把数据挂载到指定的volume
    docker run -v {CONFIG PATH}:/usr/local/etc/redis -v {DATA PATH}:/data --name test-redis -p 6379:6379 -d redis:6.2.4 redis-server /usr/local/etc/redis/redis.conf --appendonly yes

    7. 关闭redis server

    执行docker ps找到正在运行的redis container,然后运行docker kill {CONTAINER ID}

    8. 重启redis server

    运行docker ps -a找到被关闭的redis container,然后运行docker start {CONTAINER ID}重新启动

    9. 宿主机访问成功

  • 相关阅读:
    货币转换函数:CURRENCY_CONVERTING_FACTOR
    Function程序设计及应用
    工具栏对象GUI Status 与GUI Title
    Message的定义類型
    Report List 报表开发
    SpringMVC构建Restful。
    Redis主从复制
    转:Redis配置文件详解
    Redis入门学习
    Redis开启远程登录连接。
  • 原文地址:https://www.cnblogs.com/hiver/p/14879401.html
Copyright © 2011-2022 走看看