Linux安装Redis

安装须知

环境:centos6.6
Redis版本:redis-3.0.4.tar.gz
安装目录:/usr/local/redis/
用户:root

安装步骤

cd /usr/local/src/
cp /install_software/redis-3.0.4.tar.gz ./
mkdir /usr/local/redis

cd redis-3.0.4
make prefix=/usr/local/redis/ install  //使用PREFIX指定安装目录

编译安装完成后,在/usr/local/redis目录下有一个bin目录,里面就是redis的命令脚本

  • redis-serverRedis服务器
  • redis-cliRedis命令行客户端
  • redis-bemchmarkRedis性能测试工具
  • redis-check-aofAOF文件修复工具
  • redis-check-dumpRDB文件检查工具

这里写图片描述

配置Redis的初始化启动脚本

安装完成后,Redis的启动脚本为:/usr/local/src/redis-3.0.4/utils/ redis_init_script

将启动脚本复制到/etc/rc.d/init.d/目录下,并命名为redis:

cp redis_init_script /etc/rc.d/init.d/redis
vi  /etc/rc.d/init.d/redis

查看以上redis服务脚本,做如下几个修改的准备:
(1) 在脚本的第一行后面添加一行内容如下:

#chkconfig: 2345 80 90

(如果不添加上面的内容,在注册服务时会提示:service redis does not support chkconfig)
(2) REDISPORT端口改为6379;(注意,端口名将与下面的配置文件名有关)
(3) EXEC=/usr/local/bin/redis-server 改为
EXEC=/application/redis/bin/redis-server
(4) CLIEXEC=/usr/local/bin/redis-cli改为CLIEXEC=application/redis/bin/redis-cli
(5) 配置文件设置:

创建redis配置文件目录

# mkdir /application/redis/conf

复制redis配置文件/usr/local/src/redis-3.0.4/redis.conf到/application/redis/conf目录并按端口号重命名为6379.conf

#cp /usr/local/src/redis3.0/redis.conf /usr/local/redis/conf/6379.conf

做了以上准备后,再对CONF属性作如下调整:

CONF=”/etc/redis/${REDISPORT}.conf” 改为

CONF=”/application/redis/conf/${REDISPORT}.conf

(6) 更改redis开启的命令,以后台运行的方式执行:

$EXEC $CONF  &   // “&”作用是将服务转到后面运行

修改的/etc/rc.d/init.d/redis脚本内容为:

这里写图片描述

redis启动脚本中指定的运行服务配置文件为/usr/local/redis/conf/6379.conf

这里写图片描述

以上配置操作完成后,便可将Redis注册成为服务:

# chkconfig --add redis

这里写图片描述

防火墙中打开对应的端口

# vi /etc/sysconfig/iptables

添加:

# Redis port
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT   //redis默认端口为6379

重启防火墙:

# service iptables restart

修改Redis配置文件

vi /application/redis/conf/6379.conf

参数说明
daemonizeyes使Redis以守护进程模式运行
pidfile/var/run/redis_port.pid设置Redis的PID文件位置
port端口号设置Redis的监听端口号
dir/var/redis/端口号设置持久化文件的存放位置需要mkdir该路径
bindIp地址By default Redis listens for connections from all the network interfaces


这里写图片描述

这里写图片描述

这里写图片描述

  • 创建持久化文件保存路径,需要提前mkdir

这里写图片描述

  • 将Redis添加到环境变量中:

这里写图片描述

启动Redis服务

#service redis start

这里写图片描述

这里写图片描述

redis-server  --port  6379
redis-server /etc/redis/6379.conf    //指定配置文件启动

客户端命令连接之后,输入ping,返回PONG,说明Redis服务正常运行

这里写图片描述
这里写图片描述

关闭服务

service redis stop

这里写图片描述

考虑Redis可能在执行内存数据持久化到硬盘中,强行停止Redis可能导致数据丢失,正确方式停止Redis使用发送SHUTDOWN命令,
redis-cli SHUTDOWN
redis-cli -h ip -p 6379 shutdown

redis先断开所有客户端链接,然后根据配置执行持久化,最后完成退出

这里写图片描述

使用kill pid 也可以正常结束redis进程,效果等同shutdown。

ps  -ef | grep redis
kill  PID

至此,Redis服务全部安装,测试完成

Redis集群

官方集群安装过程:http://doc.redisfans.com/topic/cluster-tutorial.html

要让Redis3.0集群正常工作至少需要3个Master节点,要想实现高可用,每个Master节点要配备至少1个Slave节点。本例只做两主两从,进行如下的集群实施规划:
使用4台服务器(物理机或虚拟机)部署2个Master +2个Slave;

这里写图片描述


主机名IP服务端口集群端口主/从
Master_1192.168.230.131637916379Master
Master_2192.168.230.136637916379Master
Slave_1192.168.230.137637916379Slave
Slave_2192.168.230.138637916379Slave


按规划:防火墙中打开相应的端口

192.168.1.131
-A INPUT -m state –state NEW -m tcp -p tcp–dport 6379 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 16379 -j ACCEPT

192.168.1.136
-A INPUT -m state –state NEW -m tcp -p tcp–dport 6379 -j ACCEPT
-A INPUT -m state –stateNEW -m tcp -p tcp –dport 16379 -j ACCEPT

192.168.1.137
-A INPUT -m state –state NEW -m tcp -p tcp–dport 6379 -j ACCEPT
-A INPUT -m state –stateNEW -m tcp -p tcp –dport 16379 -j ACCEPT

192.168.1.138
-A INPUT -m state –state NEW -m tcp -p tcp–dport 6379 -j ACCEPT
-A INPUT -m state –stateNEW -m tcp -p tcp –dport 16379 -j ACCEPT

安装Redis过程省略

复制redis配置文件
/usr/local/src/redis-3.0.4/redis.conf

/application/redis/conf目录并按端口号重命名为6379.conf

cp /usr/local/src/redis3.0/redis.conf /usr/local/redis/conf/6379.conf

创建集群配置目录,并拷贝redid.conf配置文件到各节点配置目录:
原始配置文件

cp /usr/local/src/redis-3.0.4/redis.conf /usr/local/redis3/cluster/6379/redis-6379.conf
scp 
root@192.168.230.131:/usr/local/redis/cluster/6379/redis-6379.conf 
cluster/6379/redis-6379.conf

192.168.230.131

# mkdir -p /usr/local/redis/cluster/6379
# cp /usr/local/redis/conf/6379.conf /usr/local/redis/cluster/6379/redis-6379.conf

192.168.230.136

# mkdir -p /usr/local/redis/cluster/6379
# cp /usr/local/redis/conf/6379.conf /usr/local/redis/cluster/6379/redis-6379.conf

192.168.230.137

# mkdir -p /usr/local/redis/cluster/6379
# cp /usr/local/redis/conf/6379.conf /usr/local/redis/cluster/6379/redis-6379.conf

192.168.230.138

# mkdir -p /usr/local/redis/cluster/6379
# cp /usr/local/redis/conf/6379.conf /usr/local/redis/cluster/6379/redis-6379.conf

修改配置文件中的选项

6个节点的集群配置文件cluster/redis-6379.conf配置文件内容,注意修改下红色字体部分的内容即可,其他都相同:

配置选项选项值说明
daemonizeyes是否作为守护进程运行
pidfile/var/run/redis-6379.pid如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid
port6379监听端口,默认为6379,注意:集群通讯端口值默认为此端口值+10000,如16379
bindIp地址By default Redis listens for connections from all the network interfaces, available on the server
dir/usr/local/redis/persistence/6379节点数据持久化存放目录(建议配置)
databases1可用数据库数,默认值为16,默认数据库存储在DB 0号ID库中,无特殊需求,建议仅设置一个数据库databases 1
cluster-enabledyes打开redis集群
cluster-config-file/usr/local/redis/cluster/6379/nodes.conf集群配置文件(启动自动生成),不用人为干涉
cluster-node-timeout15000节点互连超时时间。毫秒
cluster-migration-barrier1数据迁移的副本临界数,这个参数表示的是,一个主节点在拥有多少个好的从节点的时候就要割让一个从节点出来给另一个没有任何从节点的主节点。
cluster-require-full-coverageyes如果某一些key space没有被集群中任何节点覆盖,集群将停止接受写入
appendonlyyes启用aof持久化方式,因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认值为no


使用集群配置文件启动4个节点
192.168.230.131
redis-server /usr/local/redis/cluster/6379/redis-6379.conf

192.168.230.136
redis-server /usr/local/redis/cluster/6379/redis-6379.conf

192.168.230.137
redis-server /usr/local/redis/cluster/6379/redis-6379.conf

192.168.230.138
redis-server /usr/local/redis/cluster/6379/redis-6379.conf

启动之后用PS命令查看实例启动情况:

这里写图片描述

这里写图片描述

注意:启动完毕后,4个Redis实例尚未构成集群。

创建集群

安装ruby和rubygems(注意:需要ruby的版本在1.8.7 以上)

# yum install ruby rubygems

gem 安装redis ruby 接口:

# gem install redis

这里写图片描述

执行Redis集群创建命令

(只需要在其中一个节点上执行一次则可)

#cd /usr/local/src/redis-3.0.4/src/
#cp redis-trib.rb /usr/local/redis/bin/redis-trib
#redis-trib create –-replicas 1 192.168.230.131:6379 192.168.230.136:6379 
192.168.230.137:6379 192.168.230.138:6379

注意:redis-3.0以上至少需要3个master节点
这里写图片描述

本例采取了1台虚拟机开启3个实例,2台开启6个实例进行集群
redis-server /usr/local/redis/cluster/6379/redis-6379.conf
redis-server /usr/local/redis/cluster/6380/redis-6380.conf
redis-server /usr/local/redis/cluster/6381/redis-6381.conf

这里写图片描述

redis-trib create –replicas 1 192.168.230.131:6379 192.168.230.131:6380 192.168.230.131:6381 192.168.230.136:6379 192.168.230.136:6380 192.168.230.136:6381

如报错:

Creating cluster
Connecting to node 192.168.230.131:6379: OK
[ERR] Node 192.168.230.131:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

错误提示已经有数据了。
将persistence/6379,persistence/6380,persistence/6381目录下的appendonly.aof持久化文件删掉。
将cluster/6379,/cluster/6380,/cluster/6381目录下生成的nodes-6379.conf,nodes-6380.conf,
nodes-6381.conf文件删掉。
重新启动服务。

这里写图片描述

(输入yes 并按下回车确认之后,集群就会将配置应用到各个节点,并连接起(join)各个节点,也就是让各个节点开始互相通讯)

集群创建过程说明

1. 给定redis-trib 程序的命令是create,这表示我们希望创建一个新的集群;
2. 这里的–replicas 1表示每个主节点下有一个从节点;
3. 之后跟着的其它参数则是实例的地址列表,程序使用这些地址所指示的实例来创建新集群;

总的来说,以上命令的意思就是让redis-trib 程序创建一个包含三个主节点和三个从节点的集群。

接着,redis-trib 会打印出一份预想中的配置给你看,如果你觉得没问题的话(注意核对主从关系是否是你想要的),就可以输入yes ,redis-trib 就会将这份配置应用到集群当中。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值