1.环境确认

a.系统版本查看
[hadoop@p168 ~]$ cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core) 
b.安装依赖
[hadoop@p168 ~]$ sudo yum -y install tcl ruby tree 
 
2.安装redis 3.0.6
[hadoop@p168 ~]#cd /usr/local/
[hadoop@p168 ~]#tar  xzf redis-stable.tar.gz
[hadoop@p168 ~]#cd redis-stable
[hadoop@p168 ~]#make
[hadoop@p168 ~]#make test
[hadoop@p168 ~]#make install
 
3.建立节点配置目录
 
[hadoop@p168 ~]#mkdir /etc/redis

[hadoop@p168 ~]#mkdir /etc/redis/7000

 
4.建立节点配置文件
a.配置7000节点,先复制redis-server与初始配置文件redis.conf,然后修改redis.conf,使其适合集群
[hadoop@p168 ~]#cp /usr/local/redis-stable/src/redis-server  /usr/local/redis-stable/redis.conf /etc/redis/7000
修改redis.conf,主要修改内容如下:
[hadoop@p168 ~]#vim /etc/redis/7000/redis.conf
#/etc/redis/7000/redis.conf
 
port 7000
daemonize    yes 
pidfile  /var/run/redis_7000.pid
cluster-enabled yes
cluster-config-file nodes.conf
logfile "/var/log/redisd7000.log"
dir /etc/redis/7000/
cluster-node-timeout 5000
appendonly yes
 
b.复制其他节点配置文件
#生成7001配置,其他类似
cp -r 7000 7001
sed -i "s/7000/7001/g" 7001/redis.conf
cat  7001/redis.conf |grep 7001
 
5.配置节点开机启动
修改redisd7000的启动脚本,7001~7005类似
 
[hadoop@p168 ~]#cp /usr/local/redis-stable/utils/redis_init_script /etc/init.d/redisd7000
[hadoop@p168 ~]#vim  /etc/init.d/redisd7000
 
#!/bin/sh
#chkconfig:    2345 90 10
#description:  Redis is a persistent key-value database
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
 
REDISPORT=7000
#EXEC=/usr/local/bin/redis-server
EXEC=/etc/redis/${REDISPORT}/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
#CONF="/etc/redis/${REDISPORT}.conf"
CONF="/etc/redis/${REDISPORT}/redis.conf"
主要修改内容包括如下三点:
a.加入前三行即
#!/bin/sh
#chkconfig:    2345 90 10
#description:  Redis is a persistent key-value database

b.修改端口,即

REDISPORT=7000

c.指定EXEC与CONF即

EXEC=/etc/redis/${REDISPORT}/redis-server
CONF="/etc/redis/${REDISPORT}/redis.conf"

其他的不动,略

复制生成其他启动脚本
#生成7001脚本,其他类似
cp /etc/init.d/redisd7000 /etc/init.d/redisd7001
sed -i "s/7000/7001/g" /etc/init.d/redisd7001

cat   /etc/init.d/redisd7001 |grep 7001

 
#设置为开机自启动服务器,其他服务类似
[hadoop@p168 ~]#chkconfig redisd7000 on
 
确认配置文件,重启前应该是如下状态
[root@p161 ~]# ls /etc/init.d/ |grep redis
redisd7000
redisd7001
redisd7002
redisd7003
redisd7004
redisd7005
注:以上文件是6个服务的自动启动脚本
[root@p161 ~]# tree /etc/redis
/etc/redis
├── 7000
│   ├── redis.conf
│   └── redis-server
├── 7001
│   ├── redis.conf
│   └── redis-server
├── 7002
│   ├── redis.conf
│   └── redis-server
├── 7003
│   ├── redis.conf
│   └── redis-server
├── 7004
│   ├── redis.conf
│   └── redis-server
├── 7005
│   ├── redis.conf
│   └── redis-server
注:以上目录是各服务器的redis-server可执行程序与其配置文件,若没有tree命令,先 yum install -y tree
 
[hadoop@p168 ~]# reboot
重启以后服务应该就启动了,若有需要可以用如下命令来启动或停止服务了
service redisd7000 start
service redisd7000 stop
 
6.安装redis接口
#rubygems.org被墙,换ruby.taobao.org
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem install redis
 
7.建立集群
[root@p161 redis-stable]# /usr/local/redis-stable/src/redis-trib.rb  create --replicas 1 192.168.1.161:7000 192.168.1.161:7001 192.168.1.161:7002 192.168.1.161:7003 192.168.1.161:7004 192.168.1.161:7005
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.1.161:7000
192.168.1.161:7001
192.168.1.161:7002
Adding replica 192.168.1.161:7003 to 192.168.1.161:7000
Adding replica 192.168.1.161:7004 to 192.168.1.161:7001
Adding replica 192.168.1.161:7005 to 192.168.1.161:7002
M: 5f62052fb63b330ae39e35e35fdb5cd5d3f3d013 192.168.1.161:7000
   slots:0-5460 (5461 slots) master
M: 925478713e7a73c986dc0c07c01dd7bd63c20f47 192.168.1.161:7001
   slots:5461-10922 (5462 slots) master
M: d81817cb1d01695e552ea2fde2a5ac62772d2a08 192.168.1.161:7002
   slots:10923-16383 (5461 slots) master
S: 26906db48fba3321374c9d1fa0f3b55730c49ae1 192.168.1.161:7003
   replicates 5f62052fb63b330ae39e35e35fdb5cd5d3f3d013
S: 94077768fe3ff601722f2970c65b1604c6e714df 192.168.1.161:7004
   replicates 925478713e7a73c986dc0c07c01dd7bd63c20f47
S: 9259eff3d7d40449830e2de9561e6c77a490f4e0 192.168.1.161:7005
   replicates d81817cb1d01695e552ea2fde2a5ac62772d2a08
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join....
>>> Performing Cluster Check (using node 192.168.1.161:7000)
M: 5f62052fb63b330ae39e35e35fdb5cd5d3f3d013 192.168.1.161:7000
   slots:0-5460 (5461 slots) master
M: 925478713e7a73c986dc0c07c01dd7bd63c20f47 192.168.1.161:7001
   slots:5461-10922 (5462 slots) master
M: d81817cb1d01695e552ea2fde2a5ac62772d2a08 192.168.1.161:7002
   slots:10923-16383 (5461 slots) master
M: 26906db48fba3321374c9d1fa0f3b55730c49ae1 192.168.1.161:7003
   slots: (0 slots) master
   replicates 5f62052fb63b330ae39e35e35fdb5cd5d3f3d013
M: 94077768fe3ff601722f2970c65b1604c6e714df 192.168.1.161:7004
   slots: (0 slots) master
   replicates 925478713e7a73c986dc0c07c01dd7bd63c20f47
M: 9259eff3d7d40449830e2de9561e6c77a490f4e0 192.168.1.161:7005
   slots: (0 slots) master
   replicates d81817cb1d01695e552ea2fde2a5ac62772d2a08
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
 
8.确认集群状态
[root@p169 ~]#  /usr/local/redis-stable/src/redis-trib.rb check  192.168.1.161:7000
>>> Performing Cluster Check (using node 192.168.1.161:7000)
M: e3b5e66e28c015552625b7f1b52538da98d16c96 192.168.1.161:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: 6dacc2604f22692a9291e3e6e82bee492fbb0817 192.168.1.161:7003
   slots: (0 slots) slave
   replicates e3b5e66e28c015552625b7f1b52538da98d16c96
M: 5aa111c270091b474feaf0f11aa8a2e3ff2a5ccc 192.168.1.161:7001
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 8252ac10b98a2f8d78c6f1b488610b8f789548db 192.168.1.161:7005
   slots: (0 slots) slave
   replicates 6aa2e0cb813a6ed451437ef4203aa669d42ac50c
S: 1e179fa5c399dba3eed3e592c5855cf600a648a5 192.168.1.161:7004
   slots: (0 slots) slave
   replicates 5aa111c270091b474feaf0f11aa8a2e3ff2a5ccc
M: 6aa2e0cb813a6ed451437ef4203aa669d42ac50c 192.168.1.161:7002
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
 
有错误的话,修复集群
[root@p161 ~]# /usr/local/redis-stable/src/redis-trib.rb fix 192.168.1.161:7000

若要确认输入yes

[root@p161 ~]# ps -ef | grep redis
root     26530 13340  0 12:07 pts/1    00:00:03 ./7000/redis-server *:7000 [cluster]
root     26914 26538  0 12:07 pts/3    00:00:03 ./7001/redis-server *:7001 [cluster]
root     27430 13649  0 12:10 pts/2    00:00:03 ./7002/redis-server *:7002 [cluster]
root     27441 26922  0 12:10 pts/4    00:00:03 ./7003/redis-server *:7003 [cluster]
root     27732 27448  0 12:10 pts/5    00:00:03 ./7004/redis-server *:7004 [cluster]
root     28029 27740  0 12:11 pts/6    00:00:02 ./7005/redis-server *:7005 [cluster]
root     28572  5882  0 12:23 pts/0    00:00:00 redis-cli -c -p 7000
root     30085 28867  0 12:35 pts/7    00:00:00 grep --color=auto redis
 
[root@p161 ~]# netstat -tnlp | grep redis
tcp        0      0 0.0.0.0:17000           0.0.0.0:*               LISTEN      26530/./7000/redis- 
tcp        0      0 0.0.0.0:17001           0.0.0.0:*               LISTEN      26914/./7001/redis- 
tcp        0      0 0.0.0.0:17002           0.0.0.0:*               LISTEN      27430/./7002/redis- 
tcp        0      0 0.0.0.0:17003           0.0.0.0:*               LISTEN      27441/./7003/redis- 
tcp        0      0 0.0.0.0:17004           0.0.0.0:*               LISTEN      27732/./7004/redis- 
tcp        0      0 0.0.0.0:17005           0.0.0.0:*               LISTEN      28029/./7005/redis- 
tcp        0      0 0.0.0.0:7000            0.0.0.0:*               LISTEN      26530/./7000/redis- 
tcp        0      0 0.0.0.0:7001            0.0.0.0:*               LISTEN      26914/./7001/redis- 
tcp        0      0 0.0.0.0:7002            0.0.0.0:*               LISTEN      27430/./7002/redis- 
tcp        0      0 0.0.0.0:7003            0.0.0.0:*               LISTEN      27441/./7003/redis- 
tcp        0      0 0.0.0.0:7004            0.0.0.0:*               LISTEN      27732/./7004/redis- 
tcp        0      0 0.0.0.0:7005            0.0.0.0:*               LISTEN      28029/./7005/redis- 
tcp6       0      0 :::17000                :::*                    LISTEN      26530/./7000/redis- 
tcp6       0      0 :::17001                :::*                    LISTEN      26914/./7001/redis- 
tcp6       0      0 :::17002                :::*                    LISTEN      27430/./7002/redis- 
tcp6       0      0 :::17003                :::*                    LISTEN      27441/./7003/redis- 
tcp6       0      0 :::17004                :::*                    LISTEN      27732/./7004/redis- 
tcp6       0      0 :::17005                :::*                    LISTEN      28029/./7005/redis- 
tcp6       0      0 :::7000                 :::*                    LISTEN      26530/./7000/redis- 
tcp6       0      0 :::7001                 :::*                    LISTEN      26914/./7001/redis- 
tcp6       0      0 :::7002                 :::*                    LISTEN      27430/./7002/redis- 
tcp6       0      0 :::7003                 :::*                    LISTEN      27441/./7003/redis- 
tcp6       0      0 :::7004                 :::*                    LISTEN      27732/./7004/redis- 
tcp6       0      0 :::7005                 :::*                    LISTEN      28029/./7005/redis- 
 
9.打开防火墙端口
[root@p161 ~]# firewall-cmd --zone=public --add-port=7000-7005/tcp --permanent
success

[root@p161 ~]#firewall-cmd --reload

success
 
10.访问测试
[root@p161 redis-stable]#redis-cli -c -p 7000
127.0.0.1:7000>  cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_sent:1248
cluster_stats_messages_received:1248
127.0.0.1:7000>  cluster nodes
6dacc2604f22692a9291e3e6e82bee492fbb0817 192.168.1.161:7003 slave e3b5e66e28c015552625b7f1b52538da98d16c96 0 1451399924770 4 connected
5aa111c270091b474feaf0f11aa8a2e3ff2a5ccc 192.168.1.161:7001 master - 0 1451399923768 2 connected 5461-10922
8252ac10b98a2f8d78c6f1b488610b8f789548db 192.168.1.161:7005 slave 6aa2e0cb813a6ed451437ef4203aa669d42ac50c 0 1451399922766 6 connected
1e179fa5c399dba3eed3e592c5855cf600a648a5 192.168.1.161:7004 slave 5aa111c270091b474feaf0f11aa8a2e3ff2a5ccc 0 1451399925772 5 connected
e3b5e66e28c015552625b7f1b52538da98d16c96 192.168.1.161:7000 myself,master - 0 0 1 connected 0-5460
6aa2e0cb813a6ed451437ef4203aa669d42ac50c 192.168.1.161:7002 master - 0 1451399926776 3 connected 10923-16383
127.0.0.1:7000> 
 
 
11.python测试

先安装pip install redis-py-cluster

注意在集群中 pip install redis安装的redis会报错!!!

from rediscluster import StrictRedisCluster
startup_nodes = [{"host": "192.168.1.161", "port": "7000"}]
rc = StrictRedisCluster(startup_nodes=startup_nodes, decode_responses=True)
rc.set("blog", "http://blog.csdn.net/dgatiger")
print rc.get('blog')

CentOS7.2 安装redis 3.0.6集群的更多相关文章

  1. Centos7下安装redis实战(单机版以及集群)

    一.背景 因项目需要,要引入redis做缓存,就在centos7下亲自安装了一遍redis,刚好趁着这个机会就来把redis的概念以及单机版和集群版redis安装步骤记录下来,在此和大家一起分享. 二 ...

  2. Redis 5.0.5集群搭建

    Redis 5.0.5集群搭建 一.概述 Redis3.0版本之后支持Cluster. 1.1.redis cluster的现状 目前redis支持的cluster特性: 1):节点自动发现 2):s ...

  3. Redis 3.0 Cluster集群配置

    Redis 3.0 Cluster集群配置 安装环境依赖 安装gcc:yum install gcc 安装zlib:yum install zib 安装ruby:yum install ruby 安装 ...

  4. 配置redis 4.0.11 集群

    配置redis 4.0.11 集群 准备redis 软件和redis配置文件 启动Redis服务 /data/soft/redis/src/redis-check-aof --fix /log/red ...

  5. Redis 3.0.2集群搭建以及相关问题汇总

    Redis3 正式支持了 cluster,是为了解决构建redis集群时的诸多不便 (1)像操作单个redis一样操作key,不用操心key在哪个节点上(2)在线动态添加.删除redis节点,不用停止 ...

  6. Centos7.4安装elasticsearch6.3+kibana6.3集群

    Centos7.4安装elasticsearch+kibana集群 Centos7.4安装elasticsearch+kibana集群 主机环境 软件环境 主机规划 主机安装前准备 安装jdk1.8 ...

  7. Redis 5.0.3集群部署

    参考文章 https://blog.csdn.net/yyTomson/article/details/85783753 https://www.cnblogs.com/zy-303/p/102731 ...

  8. redis 3.0的集群部署

    转载请注明出处:http://hot66hot.iteye.com/admin/blogs/2050676 最近研究redis-cluster,正好搭建了一个环境,遇到了很多坑,系统的总结下,等到re ...

  9. (转)redis 3.0的集群部署

    一:关于redis cluster 1:redis cluster的现状 reids-cluster计划在redis3.0中推出,可以看作者antirez的声明:http://antirez.com/ ...

随机推荐

  1. 20162314 《Program Design & Data Structures》Learning Summary Of The Tenth Week

    20162314 2017-2018-1 <Program Design & Data Structures>Learning Summary Of The Tenth Week ...

  2. personal evolution

    自我清醒 认知自我的行为和心理 你确定你自己是出于理智而发出某种行为? 首先需要确定哪些是人的天性 认知失调理论 从众效应 晕轮效应 霍桑效应 马太效应 期望效应 刻板效应 破窗效应 安排思维 安排闲 ...

  3. InstallShield 2015 Premier的Basic MSI Project如何在卸载时删除残留的文件 (转)

    转载:http://blog.csdn.net/zztoll/article/details/54018615#comments 先说下缘由,我在用InstallShield 2015 Premier ...

  4. Tomcat 发布项目 conf/Catalina/localhost 配置 及数据源配置

    本文介绍通过在tomcat的conf/Catalina/localhost目录下添加配置文件,来发布项目.因为这样对 tomcat 的入侵性最小,只需要新增一个配置文件,不需要修改原有配置:而且支持动 ...

  5. cuda8.0 出错:/usr/bin/ld: 找不到 -lGL【转】

    本文转自:https://blog.csdn.net/u010159842/article/details/56833030 最近在学习深度学习,在搭建CUDA8.0的时候,出现一个非常不好的问题: ...

  6. ajax post data 获取不到数据,注意 content-type的设置 、post/get

    ajax post  data  获取不到数据,注意 content-type的设置 .post/get 关于 jQuery data 传递数据.网上各种获取不到数据,乱码之类的. 好吧今天我也遇到了 ...

  7. window下安装redis报错: creating server tcp listening socket 127.0.0.1:6379: bind No error

    window下安装redis报错: creating server tcp listening socket 127.0.0.1:6379: bind No error 解决: 如果没有配置环境,在安 ...

  8. DDMS

    DDMS 的全称是Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务

  9. python 生成zip压缩包

    import zipfile file_name="a.txt" f = zipfile.ZipFile('test.zip','w',zipfile.ZIP_STORED) f. ...

  10. pairs 和 ipairs 的区别

    ipairs 在迭代过程中是会直接跳过所有手动设定key值的变量.pairs不会跳过手动设置key值的变量. 实例 tab = {,,a="cd","d"} f ...