<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Redis - Tag - 个人博客-自用</title>
        <link>http://localhost:1313/tags/redis/</link>
        <description>Redis - Tag - 个人博客-自用</description>
        <generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Tue, 03 Oct 2023 11:19:25 &#43;0800</lastBuildDate><atom:link href="http://localhost:1313/tags/redis/" rel="self" type="application/rss+xml" /><item>
    <title>Docker部署Redis集群及集群伸缩</title>
    <link>http://localhost:1313/posts/docker%E9%83%A8%E7%BD%B2redis%E9%9B%86%E7%BE%A4%E5%8F%8A%E9%9B%86%E7%BE%A4%E4%BC%B8%E7%BC%A9/</link>
    <pubDate>Tue, 03 Oct 2023 11:19:25 &#43;0800</pubDate>
    <author>Captain</author>
    <guid>http://localhost:1313/posts/docker%E9%83%A8%E7%BD%B2redis%E9%9B%86%E7%BE%A4%E5%8F%8A%E9%9B%86%E7%BE%A4%E4%BC%B8%E7%BC%A9/</guid>
    <description><![CDATA[<h1 id="1-docker部署redis集群及集群伸缩">1. Docker部署Redis集群及集群伸缩</h1>
<h2 id="11-创建6个data目录">1.1. 创建6个data目录</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="m">1</span> mkdir /mnt/data/6381
</span></span><span class="line"><span class="cl"><span class="m">2</span> mkdir /mnt/data/6382
</span></span><span class="line"><span class="cl"><span class="m">3</span> mkdir /mnt/data/6383
</span></span><span class="line"><span class="cl"><span class="m">4</span> mkdir /mnt/data/6384
</span></span><span class="line"><span class="cl"><span class="m">5</span> mkdir /mnt/data/6385
</span></span><span class="line"><span class="cl"><span class="m">6</span> mkdir /mnt/data/6386
</span></span></code></pre></div><h2 id="12-官网下载最新的redis包">1.2. 官网下载最新的redis包</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="m">1</span> wget http://download.redis.io/releases/redis-6.0.6.tar.gz
</span></span></code></pre></div><h2 id="13-docker拉取对应的redis镜像">1.3. docker拉取对应的redis镜像</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="m">1</span> docker pull redis:6.0.6
</span></span></code></pre></div><h2 id="14-修改配置文件">1.4. 修改配置文件</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="m">1</span> <span class="o">[</span>root@localhost ~<span class="o">]</span><span class="c1"># cp redis-6.0.6/redis.conf /mnt/redis.conf</span>
</span></span><span class="line"><span class="cl"><span class="m">2</span> <span class="o">[</span>root@localhost ~<span class="o">]</span><span class="c1"># vim /mnt/redis.conf</span>
</span></span><span class="line"><span class="cl"><span class="m">3</span> <span class="c1"># bind 127.0.0.1 &#34;注释bind 127.0.0.1&#34;</span>
</span></span><span class="line"><span class="cl"><span class="m">4</span> protected-mode no   <span class="c1">#&#34;将 protected-mode yes 改为 protected-mode no &#34;</span>
</span></span><span class="line"><span class="cl"><span class="m">5</span> <span class="c1"># daemonize yes  &#34;注释daemonize yes, 或改为no&#34;</span>
</span></span><span class="line"><span class="cl"><span class="m">6</span> cluster-enabled yes <span class="c1">#&#34;启用集群配置&#34;</span>
</span></span><span class="line"><span class="cl"><span class="m">7</span> cluster-config-file nodes-6381.conf <span class="c1">#&#34;节点配置文件&#34;</span>
</span></span><span class="line"><span class="cl"><span class="m">8</span> cluster-node-timeout <span class="m">5000</span> <span class="c1"># &#34;节点通信超时时间5s&#34;</span>
</span></span></code></pre></div><h2 id="15-启动6台redis容器">1.5. 启动6台redis容器</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="m">1</span> docker run -p 6381:6379 --name redis01 -v /mnt/redis.conf:/etc/redis/redis.conf -v /mnt/data/6381:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
</span></span><span class="line"><span class="cl"><span class="m">2</span> docker run -p 6382:6379 --name redis02 -v /mnt/redis.conf:/etc/redis/redis.conf -v /mnt/data/6382:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
</span></span><span class="line"><span class="cl"><span class="m">3</span> docker run -p 6383:6379 --name redis03 -v /mnt/redis.conf:/etc/redis/redis.conf -v /mnt/data/6383:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
</span></span><span class="line"><span class="cl"><span class="m">4</span> docker run -p 6384:6379 --name redis04 -v /mnt/redis.conf:/etc/redis/redis.conf -v /mnt/data/6384:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
</span></span><span class="line"><span class="cl"><span class="m">5</span> docker run -p 6385:6379 --name redis05 -v /mnt/redis.conf:/etc/redis/redis.conf -v /mnt/data/6385:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
</span></span><span class="line"><span class="cl"><span class="m">6</span> docker run -p 6386:6379 --name redis06 -v /mnt/redis.conf:/etc/redis/redis.conf -v /mnt/data/6386:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
</span></span></code></pre></div><h2 id="16-查看各容器ip">1.6. 查看各容器IP</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"> <span class="m">1</span> <span class="o">[</span>root@localhost ~<span class="o">]</span><span class="c1"># docker inspect redis01 | grep &#34;172.17&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="m">2</span> 172.172.0.2
</span></span><span class="line"><span class="cl"> <span class="m">3</span> <span class="o">[</span>root@localhost ~<span class="o">]</span><span class="c1"># docker inspect redis02 | grep &#34;172.17&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="m">4</span> 172.172.0.3
</span></span><span class="line"><span class="cl"> <span class="m">5</span> <span class="o">[</span>root@localhost ~<span class="o">]</span><span class="c1"># docker inspect redis03 | grep &#34;172.17&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="m">6</span> 172.172.0.4
</span></span><span class="line"><span class="cl"> <span class="m">7</span> <span class="o">[</span>root@localhost ~<span class="o">]</span><span class="c1"># docker inspect redis04 | grep &#34;172.17&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="m">8</span> 172.172.0.5
</span></span><span class="line"><span class="cl"> <span class="m">9</span> <span class="o">[</span>root@localhost ~<span class="o">]</span><span class="c1"># docker inspect redis05 | grep &#34;172.17&#34;</span>
</span></span><span class="line"><span class="cl"><span class="m">10</span> 172.172.0.6
</span></span><span class="line"><span class="cl"><span class="m">11</span> <span class="o">[</span>root@localhost ~<span class="o">]</span><span class="c1"># docker inspect redis06 | grep &#34;172.17&#34;</span>
</span></span><span class="line"><span class="cl"><span class="m">12</span> 172.172.0.7
</span></span></code></pre></div><h2 id="17-进入任一容器配置集群遇yes敲yes">1.7. 进入任一容器配置集群(遇yes敲yes)</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="m">1</span> redis-cli --cluster create 172.17.0.2:6379 172.17.0.3:6379 172.17.0.4:6379 172.17.0.5:6379 172.17.0.6:6379 172.17.0.7:6379  --cluster-replicas <span class="m">1</span>
</span></span></code></pre></div><h2 id="18-查看集群信息">1.8. 查看集群信息</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="m">1</span> root@d5fb8214a10a:/data# cat nodes-6379.conf 
</span></span><span class="line"><span class="cl"><span class="m">2</span> 748eb947ae5ac0c721740870ad44cb356a4b0ca5 172.17.0.4:6379@16379 master - <span class="m">0</span> <span class="m">1598101846000</span> <span class="m">3</span> connected 10923-16383
</span></span><span class="line"><span class="cl"><span class="m">3</span> 8e986c400c6b0d47064ee2fbf7a391574042dbc4 172.17.0.6:6379@16379 slave 092994cf7044995d41a876370af56c97894adea0 <span class="m">0</span> <span class="m">1598101846000</span> <span class="m">1</span> connected
</span></span><span class="line"><span class="cl"><span class="m">4</span> df1c66d381237ed63a6a6045c84942b7a7f9df9 172.17.0.5:6379@16379 slave 748eb947ae5ac0c721740870ad44cb356a4b0ca5 <span class="m">0</span> <span class="m">1598101847085</span> <span class="m">3</span> connected
</span></span><span class="line"><span class="cl"><span class="m">5</span> 092994cf7044995d41a876370af56c97894adea0 172.17.0.2:6379@16379 myself,master - <span class="m">0</span> <span class="m">1598101844000</span> <span class="m">1</span> connected 0-5460
</span></span><span class="line"><span class="cl"><span class="m">6</span> 220fba07c2e345c8aa4578e8bb3b45451377d335 172.17.0.7:6379@16379 slave bb02a3720ff638ea7edb147580e9ffa1dce29726 <span class="m">0</span> <span class="m">1598101845000</span> <span class="m">2</span> connected
</span></span><span class="line"><span class="cl"><span class="m">7</span> bb02a3720ff638ea7edb147580e9ffa1dce29726 172.17.0.3:6379@16379 master - <span class="m">0</span> <span class="m">1598101846077</span> <span class="m">2</span> connected 5461-10922
</span></span><span class="line"><span class="cl"><span class="m">8</span> vars currentEpoch <span class="m">6</span> lastVoteEpoch <span class="m">0</span>
</span></span></code></pre></div><h2 id="19-集群取存测试">1.9. 集群取存测试</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="m">1</span> 172.17.0.2:6379&gt;cluster nodes      <span class="c1"># 查看本机信息</span>
</span></span><span class="line"><span class="cl"><span class="m">2</span> 172.17.0.2:6379&gt;cluster info       <span class="c1"># 查看集群信息</span>
</span></span><span class="line"><span class="cl"><span class="m">3</span> 172.17.0.2:6379&gt;set lan golang     <span class="c1"># master插入数据(可能会报错,叫我们去别的实例存)</span>
</span></span><span class="line"><span class="cl"><span class="m">4</span> 172.17.0.3:6379&gt;get lan            <span class="c1"># node查询数据</span>
</span></span><span class="line"><span class="cl"><span class="m">5</span> <span class="o">(</span>error<span class="o">)</span> MOVED <span class="m">5798</span> 172.17.0.2:6379 <span class="c1"># 告诉我们该数据在172.17.0.2上</span>
</span></span><span class="line"><span class="cl"><span class="m">6</span> 172.17.0.5:6386&gt; keys *            <span class="c1"># 查键          </span>
</span></span><span class="line"><span class="cl"><span class="m">7</span> 1<span class="o">)</span> <span class="s2">&#34;lan&#34;</span>
</span></span></code></pre></div><blockquote>
<p><strong>解决(error) MOVED问题</strong></p>]]></description>
</item>
</channel>
</rss>
