Redis单机安装以及集群搭建

网络空间安全

  笔者在工作中也有接触到非关系型数据库Redis,主要用于缓存。但是也仅限于使用方面,底层没具体了解过,刚好有朋友正在研究这个,我也就再深入研究一波。

  今天主要来看一下Redis的安装以及集群搭建(我也是第一次搭建)。

  环境:CentOS 7.1,redis-5.0.7

  一、单机安装

  1、将Redis安装包放置服务器并解压

  2、进入redis安装目录(笔者的是/usr/soft/redis-5.0.7)执行make && make install命令,安装完成后出现下图的场景,则说明安装成功

  3、在redis安装目录创建两个文件夹etc(用于存放redis.conf),bin(存放相应的命令脚本)

  将redis.conf移到etc目录中,将src下的mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-check-rdb、redis-cli、redis-server移到bin目录中

  mvredis.confetc/#进入src目录下mvmkreleasehdr.shredis-benchmarkredis-check-aofredis-check-rdbredis-cliredis-server../bin/

  3、配置redis.conf(常用配置项)

  #注释掉这一行,否则其它机器不可以访问当前redis,也可以改成其他ip#bind127.0.0.1#将protected-mode后面的yes改成no,也是为了让其他ip访问当前redisprotected-modeno#将daemonize后面的no改成yes,这个是为了让redis后台运行。daemonizeyes#日志文件所在目录logfile/usr/soft/redis-5.0.7/logs/redis.log#可配置密码,也可不配,例如123456是我设置的密码#如果配置了密码,在用redis-cli连接的时候需要用【auth‘密码’】命令才用使用requirepass1234564、将redis安装目录加入环境变量

  vim ~/.bashrc(也可以是/etc/profile)

  保存之后执行source ~/.bashrc(如果是/etc/profile文件,则是source /etc/profile)

  5、启动redis

  #/usr/soft/redis-5.0.7/etc/redis.conf是配置文件redis-server/usr/soft/redis-5.0.7/etc/redis.conf

  6、客户端连接

  (推荐一个可视化连接工具RedisDesktopManager)

  用redis-cli创建一个key、value键值对

  7、关闭redis

  #也可以直接通过kill-9杀掉进程redis-clishutdown

  二、集群安装

  Redis集群是去中心化的,并没有主从节点之分。集群中要求节点数量必须是,所以至少要有三个节点,并且每个节点至少有一备份节点,所以至少需要6个redis服务实例。

  我这边有三个服务器,每个服务器上启两个redis,一个active节点,一个standby节点

  #三台服务器,每台服务器redis端口号为7001,7002192.169.197.100192.169.197.110192.169.197.120

  1、在redis目录下创建redis_cluster目录,在redis_cluster目录下创建7001,7002两个节点目录,将redis.conf(基于单机安装,配置项跟之前的一样)复制到7001,7002两个目录中。

  2、分别修改7001,7002目录下的redis.conf配置文件

  #7001目录下的redis.confport7001#端口pidfile/var/run/redis_7001.pid#进程文件cluster-enabledyes#开启集群功能cluster-config-filenodes-7001.conf#集群配置文件,集群启动后生成apponlyyes#开启日志#7002目录下的redis.confport7002#端口pidfile/var/run/redis_7002.pid#进程文件cluster-enabledyes#开启集群功能cluster-config-filenodes-7002.conf#集群配置文件,集群启动后生成apponlyyes#开启日志

  3、将redis_cluster用scp命令分发到另外两台服务器

  4、依次启动6个redis实例,(下面以脚本统一启动)

  #!/bin/bashecho'开始启动redis-cluster'redisnodes=('cnode-1''cnode-2''cnode-3')ports=('7001''7002')foripin${redisnodes[@]};doforportin${ports[@]};doecho"startredis$ip:$port"ssh$ipredis-server/usr/soft/redis-5.0.7/redis_cluster/$port/redis.confdonedoneecho'启动redis-cluster结束'

  脚本执行结果:

  5、创建集群命令,一共六个节点

  #如果没设置密码,需要把【-a123456】去掉redis-cli-a123456--clustercreate192.168.197.100:7001192.168.197.110:7001192.168.197.120:7001192.168.197.100:7002192.168.197.110:7002192.168.197.120:7002--cluster-replicas1

  执行之后会发现slots的分布

  6、验证集群

  #[-c]参数是为了启动集群模式,缺少此参数会在设值的时候直接报错redis-cli-c-h192.168.197.100-p7001-a123456

  7、关闭集群

  可以一个一个关闭,但这边使用脚本统一关闭

  #!/bin/bash#所有服务器节点的hostnameallnodes=('cnode-1''cnode-2''cnode-3')#端口号开始PORT=7001#结束端口号PORT=7003#密码,如果redis没配置密码可省略PASSWROD=123456while[$((PORT<PORT))!="0"];doforipin${allnodes[@]};do#判断某个端口是否已被占用,如果是,则执行关闭命令count=`ssh$iplsof-i:$PORT

  wc-l`if[$count-gt0];thenecho"StoppingRedis$ip:$PORT"ssh$ipredis-cli-p$PORT-a$PASSWRODshutdown2>/dev/nullelseecho"noredis$ip:$PORT"fidonePORT=$((PORT+1))doneexit0

  脚本执行结果:

  上述就是Redis单机版安装和集群部署的全部步骤。

  =======================================================

  我是Liusy,一个喜欢健身的程序员。

  欢迎【Liusy01】,一起交流Java技术及健身,获取更多干货。

标签: 网络空间安全