您的位置:首页 > 数据库 > Redis

Redis 在linux环境下安装,高可用集群配置安装部署

2017-12-30 16:43 609 查看
一、Redis介绍
Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,Redis支持各种不同方式的排序。
和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,实现数据的持久化。
redis 三个大版本
1.xx 版 支持单机部署
2.xx 版 支持master-salve模式,通过投票选举的方式进行主从切换
3.xx 版 支持集群模式

下面介绍在Linux环境下,Redis的安装与部署
1、首先上官网下载Redis 压缩包,地址:http://redis.io/download 下载稳定版3.0.7即可。
2、通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压操作


3、执行make 对Redis解压后文件进行编译



编译完成之后,可以看到解压文件redis-3.0.7 中会有对应的src、conf等文件夹,这和windows下安装解压的文件一样,大部分安装包都会有对应的类文件、配置文件和一些命令文件。



4、编译成功后,进入src文件夹,执行make install进行Redis安装
5、安装完成,界面如下



三、Redis的部署
安装成功后,下面对Redis 进行部署
1、首先为了方便管理,将Redis文件中的conf配置文件和常用命令移动到统一文件中
a)创建bin和redis.conf文件
复制代码代码如下:

mkdir -p/usr/local/redis/bin
mkdir -p/usr/local/redis/ect
b)执行Linux文件移动命令:
复制代码代码如下:

mv /lamp/redis-3.0.7/redis.conf /usr/local/redis/etc
cd /lamp/redis-3.0.7/src
mv mkreleasdhdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin

2、执行Redis-server 命令,启动Redis 服务



注意:这里直接执行Redis-server 启动的Redis服务,是在前台直接运行的(效果如上图),也就是说,执行完该命令后,
4000
如果Lunix关闭当前会话,则Redis服务也随即关闭。正常情况下,启动Redis服务需要从后台启动,并且指定启动配置文件。 
3、后台启动redis服务
a)首先编辑conf文件,将daemonize属性改为yes(表明需要在后台运行)
cd etc/
Vi redis.conf
b)再次启动redis服务,并指定启动服务配置文件
redis-server /usr/local/redis/etc/redis.conf

4、服务端启动成功后,执行redis-cli启动Redis 客户端,查看端口号。



四、总结Linux 、Redis 操作常用命令
Linux:
cd /usr 从子文件夹进入上级文件夹usr
cd local 从父到子
mv /A /B 将文件A移动到B
vi usr/local/redis/redis.conf 编辑redis.conf 文件
:wq 保存修改,并退出
Redis:
Redis-server /usr..../redis.conf 启动redis服务,并指定配置文件
Redis-cli 启动redis 客户端
Pkill redis-server 关闭redis服务
Redis-cli shutdown 关闭redis客户端
Netstat -tunpl|grep 6379 查看redis 默认端口号6379占用情况

6.外网怎么测试连接redis服务器呢,首先需要防火墙允许redis端口6379开放出来。
a) iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT
#允许6379端口
b) service iptables save  #保存iptables规则
c) iptables -nvL 查看iptables表的规则


五。如果做主从配置(非常之简单)

主服务器redis不做任何操作

从服务器redis在redis.conf 文件上
加上 
slaveof <masterip> <masterport>

哨兵

在其中一台从服务器配置sentinel.conf
(1)copy文件sentinel.conf 到/usr/local/redis/etc/中
(2)修改 sentinel.conf 文件
sentinel monitor mymaster 192.168.204.130 6379 1
sentinel monitor <名称(任意)> <ip> <端口> <投票获得票数>
sentinel down-after-milliseconds mymaster 5000 默认 1秒检测一次,这里配置5s为宕机状态

sentinel parallel-syncs mymaster 2  多少个从节点参与哨兵选举

sentinel failover-timeout mymaster 180000  主节点过期失效的时间

启动哨兵
./redis-server /user/local/redis/etc/sentinel.conf --sentinel & (& 表示在后台启动,默认端口是 26379)

查看哨兵信息
./redis-cli -h 192.168.204.131 -p 26379 info sentinel

PS:生产环境下,哨兵不应该在从服务器上部署,需另外找一台机器部署哨兵

六.高可用redis集群配置(一般需要三个master,一个master需要 两个slave,算下需要九台机器,但学习只需在一台机器上进行集群部署)

/********************* Redis 3.0 集群搭建 ********************************/
在redis3.0以前,提供了Sentinel工具来监控各Master的状态;
如果Master异常,则会做主从切换,将slave作为master,将master作为slave。
其配置也是稍微的复杂,并且各方面表现一般。现在redis3.0已经支持集群的容错功能,并且非常简单。
下面我们来进行学习下redis3.0如何搭建集群。
集群搭建:至少要三个master
------------------------------------------------------------------------
第一步:创建一个文件夹redis-cluster,然后在其下面分别创建6个文件夹如下:
(1)mkdir -p /usr/local/redis-cluster 
(2)mkdir 7001、mkdir 7002、mkdir 7003、mkdir 7004、mkdir 7005、mkdir 7006

第二步:把之前的redis.conf配置文件分别copy到700*下,进行修改各个文件内容,也就是对700*下的每一个copy的redis.conf文件进行修改!如下:(1)daemonize yes
(2)port 700*(分别对每个机器的端口号进行设置)
(3)bind 192.168.1.171(必须要绑定当前机器的ip,不然会无限悲剧下去哇..深坑勿入!!!)
(4)dir /usr/local/redis-cluster/700*/(指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据,深坑勿入!!!)
(5)cluster-enabled yes(启动集群模式,开始玩耍)
(6)cluster-config-file nodes700*.conf(这里700x最好和port对应上)
(7)cluster-node-timeout 5000
(8)appendonly yes

第三步:注意每个文件要修改端口号,bind的ip,数据存放的dir,并且nodes文件都需要进行修改!

第四步:由于redis集群需要使用ruby命令,所以我们需要安装ruby
(1)yum install ruby
(2)yum install rubygems
(3)gem install redis (安装redis和ruby的接口)

第五步:分别启动6个redis实例,然后检查是否启动成功
(1)usr/local/redis/bin/redis-server /usr/local/redis-cluster/700*/redis.conf 
(2)ps -el | grep redis 查看是否启动成功

第六步:首先到redis3.0的安装目录下,然后执行redis-trib.rb命令。
(1)cd /usr/local/redis3.0/src
(2)./redis-trib.rb  create --replicas 1 192.168.1.171:7001 192.168.1.171:7002 192.168.1.171:7003 192.168.1.171:7004 192.168.1.171:7005 192.168.1.171:7006

第七步:到此为止我们集群搭建成功!进行验证:
(1)连接任意一个客户端即可:./redis-cli -c -h -p (-c表示集群模式,指定ip地址和端口号)如:/usr/local/redis/bin/redis-cli -c -h 192.168.1.171 -p 700*
(2)进行验证:cluster info(查看集群信息)、cluster nodes(查看节点列表)
(3)进行数据操作验证
(4)关闭集群则需要逐个进行关闭,使用命令:usr/local/redis/bin/redis-cli -c -h 192.168.1.171 -p 700* shutdown

第八步:(补充)
友情提示:当出现集群无法启动时,删除临时的数据文件,再次重新启动每一个redis服务,然后重新构造集群环境。

第九步:(集群操作文章)
redis-trib.rb官方群操作命令: http://redis.io/topics/cluster-tutorial
推荐博客: http://blog.51yip.com/nosql/1726.html/comment-page-1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: