美文网首页
Redis单机安装以及集群搭建

Redis单机安装以及集群搭建

作者: Liusy01 | 来源:发表于2020-09-16 21:37 被阅读0次

<p>        笔者在工作中也有接触到非关系型数据库Redis,主要用于缓存。但是也仅限于使用方面,底层没具体了解过,刚好有朋友正在研究这个,我也就再深入研究一波。</p><p>
</p><p>
</p><p>今天主要来看一下Redis的安装以及集群搭建(我也是第一次搭建)。
</p><p>
</p><p>环境:CentOS  7.1,redis-5.0.7</p><p>
</p><p><strong>一、单机安装</strong>
</p><p>1、将Redis安装包放置服务器并解压</p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/8bc319687c10e405.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p>2、进入redis安装目录(笔者的是/usr/soft/redis-5.0.7)执行<strong>make && make install</strong>命令,安装完成后出现下图的场景,则说明安装成功</p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/1d57ab31473e7bb3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p>3、在redis安装目录创建两个文件夹etc(用于存放redis.conf),bin(存放相应的命令脚本)</p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/6d5705380ab90265.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p>将redis.conf移到etc目录中,将src下的mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-check-rdb、redis-cli、redis-server移到bin目录中</p><pre>mv redis.conf etc/

进入src目录下

mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server ../bin/</pre><p>
</p><p>3、配置redis.conf(常用配置项)</p><pre>#注释掉这一行,否则其它机器不可以访问当前redis,也可以改成其他ip

bind 127.0.0.1

将protected-mode后面的yes改成no,也是为了让其他ip访问当前

redis protected-mode no

将daemonize后面的no改成yes,这个是为了让redis后台运行。 

daemonize yes

日志文件所在目录logfile /usr/soft/redis-5.0.7/logs/redis.log

可配置密码,也可不配,例如123456是我设置的密码 

如果配置了密码,在用redis-cli连接的时候需要用【auth ‘密码’】命令才用使用

requirepass 123456</pre><p>4、将redis安装目录加入环境变量</p><p>vim ~/.bashrc(也可以是/etc/profile)
</p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/2af3cbf2805cb360.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p>保存之后执行source ~/.bashrc(如果是/etc/profile文件,则是source /etc/profile)</p><p>5、启动redis</p><pre>#/usr/soft/redis-5.0.7/etc/redis.conf是配置文件
redis-server /usr/soft/redis-5.0.7/etc/redis.conf</pre><p>
</p><p>6、客户端连接
</p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/038abc03efc6a11c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p>(推荐一个可视化连接工具RedisDesktopManager)
</p><p>用redis-cli创建一个key、value键值对</p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/e79ec3440eceebc6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/e4383c28ca4fa088.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/6578e4adfff1e413.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p>
</p><p>7、关闭redis</p><pre>#也可以直接通过kill -9杀掉进程
redis-cli shutdown</pre><p>
</p><p>
</p><h1><strong>二、集群安装</strong></h1><p>Redis集群是去中心化的,并没有主从节点之分。集群中要求节点数量必须是,所以至少要有三个节点,并且每个节点至少有一备份节点,所以至少需要6个redis服务实例。</p><p>我这边有三个服务器,每个服务器上启两个redis,一个active节点,一个standby节点
</p><p>
</p><pre>#三台服务器,每台服务器redis端口号为7001,7002
192.169.197.100
192.169.197.110
192.169.197.120</pre><p>
</p><p>1、在redis目录下创建redis_cluster目录,在redis_cluster目录下创建7001,7002两个节点目录,将redis.conf(基于单机安装,配置项跟之前的一样)复制到7001,7002两个目录中。
</p><p>
</p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/320769e4b5a31038.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/43082605da84635d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p>2、分别修改7001,7002目录下的redis.conf配置文件</p><pre>#7001目录下的redis.conf
port 7001 #端口
pidfile /var/run/redis_7001.pid #进程文件
cluster-enabled yes #开启集群功能
cluster-config-file nodes-7001.conf #集群配置文件,集群启动后生成
appendonly yes  #开启日志

7002目录下的redis.conf

port 7002 #端口
pidfile /var/run/redis_7002.pid #进程文件
cluster-enabled yes #开启集群功能
cluster-config-file nodes-7002.conf #集群配置文件,集群启动后生成
appendonly yes  #开启日志</pre><p>
</p><p>3、将redis_cluster用scp命令分发到另外两台服务器
</p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/8c04c370aec6c93a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p>4、依次启动6个redis实例,(下面以脚本统一启动)</p><pre>#!/bin/bash
echo '开始启动redis-cluster'

redisnodes=('cnode-1' 'cnode-2' 'cnode-3')
ports=('7001' '7002')
for ip in {redisnodes[@]}; do&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;port&nbsp;in&nbsp;{ports[@]};
       do      
           echo "start redis ip:port"
           ssh ip&nbsp;redis-server&nbsp;/usr/soft/redis-5.0.7/redis_cluster/port/redis.conf   
       done
done
echo '启动redis-cluster结束'</pre><p>
</p><p>脚本执行结果:</p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/599c388ad1044908.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p>5、创建集群命令,一共六个节点</p><pre>#如果没设置密码,需要把【-a 123456】去掉
redis-cli -a 123456 --cluster create 192.168.197.100:7001 192.168.197.110:7001 192.168.197.120:7001 192.168.197.100:7002 192.168.197.110:7002 192.168.197.120:7002 --cluster-replicas 1</pre><p>
</p><p>执行之后会发现slots的分布
</p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/44b038980cbe46d0.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p>6、验证集群</p><pre>#[-c]参数是为了启动集群模式,缺少此参数会在设值的时候直接报错
redis-cli -c -h 192.168.197.100 -p 7001 -a 123456</pre><p>
</p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/6466de01dd2461ef.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/d381cf90e1f9c091.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p>7、关闭集群
</p><p>可以一个一个关闭,但这边使用脚本统一关闭</p><pre>#!/bin/bash

所有服务器节点的hostname

allnodes=('cnode-1' 'cnode-2' 'cnode-3')

端口号开始

PORT=7001

结束端口号

ENDPORT=7003

密码,如果redis没配置密码可省略

PASSWROD=123456
while [ ((PORT&nbsp;&lt;&nbsp;ENDPORT))&nbsp;!=&nbsp;&quot;0&quot;&nbsp;];&nbsp; do&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;ip&nbsp;in&nbsp;{allnodes[@]};    
    do        
        #判断某个端口是否已被占用,如果是,则执行关闭命令        
        count=ssh&nbsp;$ip&nbsp;lsof&nbsp;-i:$PORT&nbsp;|&nbsp;wc&nbsp;-l        
        if [ count&nbsp;-gt&nbsp;0&nbsp;];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;Stopping&nbsp;Redis&nbsp;ip:PORT&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ssh&nbsp;ip redis-cli -p PORT&nbsp;-a&nbsp;PASSWROD shutdown 2>/dev/null        
        else            
            echo "no redis ip:PORT"        
        fi    
    done    
PORT=$((PORT+1))doneexit 0</pre><p>
</p><p>脚本执行结果:</p><p class="image-package"><img class="uploaded-img" src="https://img.haomeiwen.com/i5080600/679b61aeff3cfbf6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" width="auto" height="auto"/></p><p>
</p><p>
</p><p>上述就是Redis单机版安装和集群部署的全部步骤。</p><p>
</p><p>=======================================================</p><p>我是Liusy,一个喜欢健身的程序员。</p><p>欢迎关注【Liusy01】,一起交流Java技术及健身,获取更多干货。</p><p>
</p><p>
</p><p> 
</p>

相关文章

网友评论

      本文标题:Redis单机安装以及集群搭建

      本文链接:https://www.haomeiwen.com/subject/swzhyktx.html