基于centos6.8minimal系统环境----纯编译安装redis cluster

由于minimal版本的基础软包是具备,但lib包大多都缺。所以需要编译加载lib相关包。在此次编译安装中,需要涉及到openssl zlib的lib包。如果用yum安装也行;yum install openssl-devel zlib-devel。本文主要记录编译安装,我们开始吧。

安装前确认gcc-c++是否安装

[root@localhost ~] #yum install gcc-c++ -y

上传源码包。版本自己选择,均可网上下载

openssl-1.0.1t.tar.gz redis-3.2.0.tar.gz ruby-2.3.1.tar.gz zlib-1.2.8.tar.gz

解压包:

[root@localhost ~]# tar -xzf openssl-1.0.1t.tar.gz
[root@localhost ~]# tar -xzf zlib-1.2.8.tar.gz
[root@localhost ~]# tar -xzf ruby-2.3.1.tar.gz
[root@localhost ~]# tar -xzf redis-3.2.0.tar.gz

编译安装openssl

[root@localhost ~]# cd openssl-1.0.1t

[root@localhost openssl-1.0.1t]# ./config --prefix=/usr/local/openssl shared

[root@localhost openssl-1.0.1t]# make

[root@localhost openssl-1.0.1t]# make install

编译安装zlib

[root@localhost openssl-1.0.1t]# cd ../zlib-1.2.8

[root@localhost zlib-1.2.8]# ./configure --prefix=/usr/local/zlib

[root@localhost zlib-1.2.8]# make && make install

编译安装ruby

[root@localhost zlib-1.2.8]# cd ../ruby-2.3.1

[root@localhost ruby-2.3.1]# ./configure --prefix=/usr/local/ruby

[root@localhost ruby-2.3.1]# make && make install

处理环境变量PATH

[root@localhost ruby-2.3.1]# vim /etc/profile

PATH=$PATH:/usr/local/ruby/bin

[root@localhost ruby-2.3.1]# source /etc/profile

增加ruby的openssl\zlib模块。如果不扩展安装这两个模块会在执行gem install redis时报类式错,如下:

[root@localhost ruby-2.3.1]# gem install redis
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass


添加ruby的openssl zlib模块

[root@localhost ruby-2.3.1]# cd ext/openssl/
[root@localhost openssl]# pwd
/root/ruby-2.3.1/ext/openssl
[root@localhost openssl]# ruby extconf.rb --with-openssl-dir=/usr/local/openssl

在执行make时报错,需要修改Makefile文件,报错如下:

[root@localhost openssl]# make
make: *** No rule to make target `/include/ruby.h',needed by `ossl_x509store.o'. Stop.

[root@localhost openssl]# vim Makefile

top_srcdir = ../..

将上一条内容插入 Makefile 文件前几行就行。再次执行make

[root@localhost openssl]# make

[root@localhost openssl]# make install
/usr/bin/install -c -m 0755 openssl.so /usr/local/ruby/lib/ruby/site_ruby/2.3.0/x86_64-linux
installing default openssl libraries


[root@localhost openssl]# cd ../zlib

[root@localhost zlib]# ruby extconf.rb --with-zlib-dir=/usr/local/zlib

[root@localhost zlib]# make && make install
linking shared-object zlib.so
/usr/bin/install -c -m 0755 zlib.so /usr/local/ruby/lib/ruby/site_ruby/2.3.0/x86_64-linux


OK..ruby相关编译安装完成。

修改gem更新源

[root@localhost ~]# gem sources -l
*** CURRENT SOURCES ***

https://rubygems.org/


由于国内种种原因,好多更新源只能用国人自已的。所以得改一改。

http://gems.ruby-china.org

https://ruby.taobao.org/

由于这里使用淘宝的源。会报一个ssl证书无效,参考:http://blog.csdn.net/beyondlpf/article/details/51275051,百度了一个说是腾讯的源。不需要ssl..

[root@localhost ~]# gem sources -a http://gems.ruby-china.org/ -r https://rubygems.org/

在这里等一分钟左右,会报如下信息,表示替换成功。

http://gems.ruby-china.org/ added to sources
https://rubygems.org/ removed from sources

OK。。。整个ruby前期环境搞完了,下面开始搞redis了。just go...

[root@localhost ~]# cd redis-3.2.0


在以往的安装中(非root用户安装)。一般都是直接make && make install 。。或者按网上的说的 make --prefix=/xxxx这个方法我试过,感觉没有对。后边对[root@localhost redis-3.2.0]# vim src/Makefile这个文件查看发现对于prefix的位置是定了的。PREFIX?=/usr/local

我们需要自定义位置。修改 src/Makefile

[root@localhost redis-3.2.0]# vim src/Makefile

PREFIX?=/usr/local/redis

[root@localhost redis-3.2.0]# make && make install

在大多数的网上文档中都说要安装tcl。其实不执行make test 是不需要安装tcl的。

再次修改环境变量PATH

[root@localhost ~]# vim /etc/profile

PATH=$PATH:/usr/local/ruby/bin:/usr/local/redis/bin

[root@localhost ~]# source /etc/profile

配置redis

[root@localhost ~]# cd /usr/local/redis/
[root@localhost redis]# ls
bin
[root@localhost redis]# pwd
/usr/local/redis
[root@localhost redis]# mkdir conf log

[root@localhost redis]# cd conf/

[root@localhost conf]# mkdir 7001 7002 7003 7004 7005 7006

[root@localhost conf]# cd 7001

[root@localhost 7001]# vim redis.conf

bind 127.0.0.1
protected-mode yes
port 7001
tcp-backlog 511
timeout 0
tcp-keepalive 0
daemonize yes
supervised no
pidfile /usr/local/redis/log/7001_redis.pid
loglevel notice
logfile "/usr/local/redis/log/7001.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay yes
slave-priority 100
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

按官网的相关文档。做一个集群只有对应的cluster那几个参数足够了,其实参数作为调优相关,以上是百度的,只作参考。

将此配置文件复制到7002...7006里,并修改对应的端口号

[root@localhost 7001]# cp redis.conf ../7002/
[root@localhost 7001]# cp redis.conf ../7003/
[root@localhost 7001]# cp redis.conf ../7004/
[root@localhost 7001]# cp redis.conf ../7005/
[root@localhost 7001]# cp redis.conf ../7006/
[root@localhost 7001]# vim ../7002/redis.conf
[root@localhost 7001]# vim ../7003/redis.conf
[root@localhost 7001]# vim ../7004/redis.conf
[root@localhost 7001]# vim ../7005/redis.conf
[root@localhost 7001]# vim ../7006/redis.conf

启动redis

[root@localhost 7001]# redis-server /usr/local/redis/conf/7001/redis.conf
[root@localhost 7001]# cd ../7002
[root@localhost 7002]# redis-server /usr/local/redis/conf/7002/redis.conf
[root@localhost 7002]# cd ../7003
[root@localhost 7003]# redis-server /usr/local/redis/conf/7003/redis.conf
[root@localhost 7003]# cd ../7004
[root@localhost 7004]# redis-server /usr/local/redis/conf/7004/redis.conf
[root@localhost 7004]# cd ../7005
[root@localhost 7005]# redis-server /usr/local/redis/conf/7005/redis.conf
[root@localhost 7005]# cd ../7006
[root@localhost 7006]# redis-server /usr/local/redis/conf/7006/redis.conf

查看端口情况

[root@localhost 7006]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:7005 0.0.0.0:* LISTEN 32770/redis-server
tcp 0 0 127.0.0.1:7006 0.0.0.0:* LISTEN 32774/redis-server
tcp 0 0 127.0.0.1:17001 0.0.0.0:* LISTEN 32741/redis-server
tcp 0 0 127.0.0.1:17002 0.0.0.0:* LISTEN 32758/redis-server
tcp 0 0 127.0.0.1:17003 0.0.0.0:* LISTEN 32762/redis-server
tcp 0 0 127.0.0.1:17004 0.0.0.0:* LISTEN 32766/redis-server
tcp 0 0 127.0.0.1:17005 0.0.0.0:* LISTEN 32770/redis-server
tcp 0 0 127.0.0.1:17006 0.0.0.0:* LISTEN 32774/redis-server
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1261/sshd
tcp 0 0 127.0.0.1:7001 0.0.0.0:* LISTEN 32741/redis-server
tcp 0 0 127.0.0.1:7002 0.0.0.0:* LISTEN 32758/redis-server
tcp 0 0 127.0.0.1:7003 0.0.0.0:* LISTEN 32762/redis-server
tcp 0 0 127.0.0.1:7004 0.0.0.0:* LISTEN 32766/redis-server
tcp 0 0 :::22 :::* LISTEN 1261/sshd
[root@localhost 7006]#


创建集群

ruby安装redis集群插件

[root@localhost ~]# gem install redis

将redis源码包里的 redis-trib.rb 复制到 /usr/local/redis/bin/

[root@localhost ~]# cp /root/redis-3.2.0/src/redis-trib.rb /usr/local/redis/bin/

[root@localhost ~]# redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006

>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7001
127.0.0.1:7002
127.0.0.1:7003
Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
Adding replica 127.0.0.1:7006 to 127.0.0.1:7003
M: 291f04f678dd9606cae6368b566e0f6e73e9d27c 127.0.0.1:7001
slots:0-5460 (5461 slots) master
M: 37be4be6b9ce5a8e7beaf0ab655305b445124e75 127.0.0.1:7002
slots:5461-10922 (5462 slots) master
M: 877151589fda8b09612ec8d5608897e83cb2872d 127.0.0.1:7003
slots:10923-16383 (5461 slots) master
S: 31871de5c884cef4e9ea8049c1301ae417400d1f 127.0.0.1:7004
replicates 291f04f678dd9606cae6368b566e0f6e73e9d27c
S: 3de40d5c74fca6d4b27d2cb0a4d94df64efbdb60 127.0.0.1:7005
replicates 37be4be6b9ce5a8e7beaf0ab655305b445124e75
S: fd072e7bbcd631f52ad81cb984a4eda5ceeaf00a 127.0.0.1:7006
replicates 877151589fda8b09612ec8d5608897e83cb2872d
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 127.0.0.1:7001)
M: 291f04f678dd9606cae6368b566e0f6e73e9d27c 127.0.0.1:7001
slots:0-5460 (5461 slots) master
M: 37be4be6b9ce5a8e7beaf0ab655305b445124e75 127.0.0.1:7002
slots:5461-10922 (5462 slots) master
M: 877151589fda8b09612ec8d5608897e83cb2872d 127.0.0.1:7003
slots:10923-16383 (5461 slots) master
M: 31871de5c884cef4e9ea8049c1301ae417400d1f 127.0.0.1:7004
slots: (0 slots) master
replicates 291f04f678dd9606cae6368b566e0f6e73e9d27c
M: 3de40d5c74fca6d4b27d2cb0a4d94df64efbdb60 127.0.0.1:7005
slots: (0 slots) master
replicates 37be4be6b9ce5a8e7beaf0ab655305b445124e75
M: fd072e7bbcd631f52ad81cb984a4eda5ceeaf00a 127.0.0.1:7006
slots: (0 slots) master
replicates 877151589fda8b09612ec8d5608897e83cb2872d
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

查看核对集群功能

[root@localhost ~]# redis-trib.rb info 127.0.0.1:7001
127.0.0.1:7001 (291f04f6...) -> 0 keys | 5461 slots | 1 slaves.
127.0.0.1:7002 (37be4be6...) -> 0 keys | 5462 slots | 1 slaves.
127.0.0.1:7003 (87715158...) -> 0 keys | 5461 slots | 1 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.

[root@localhost ~]# cd /usr/local/redis/conf/7001/
[root@localhost 7001]# ls
appendonly.aof dump.rdb nodes.conf redis.conf
[root@localhost 7001]# cat nodes.conf
fd072e7bbcd631f52ad81cb984a4eda5ceeaf00a 127.0.0.1:7006 slave 877151589fda8b09612ec8d5608897e83cb2872d 0 1465829294197 6 connected
31871de5c884cef4e9ea8049c1301ae417400d1f 127.0.0.1:7004 slave 291f04f678dd9606cae6368b566e0f6e73e9d27c 0 1465829291171 4 connected
37be4be6b9ce5a8e7beaf0ab655305b445124e75 127.0.0.1:7002 master - 0 1465829293191 2 connected 5461-10922
877151589fda8b09612ec8d5608897e83cb2872d 127.0.0.1:7003 master - 0 1465829296220 3 connected 10923-16383
291f04f678dd9606cae6368b566e0f6e73e9d27c 127.0.0.1:7001 myself,master - 0 0 1 connected 0-5460
3de40d5c74fca6d4b27d2cb0a4d94df64efbdb60 127.0.0.1:7005 slave 37be4be6b9ce5a8e7beaf0ab655305b445124e75 0 1465829295208 5 connected
vars currentEpoch 6 lastVoteEpoch 0

[root@localhost ~]# redis-cli -c -h 127.0.0.1 -p 7001

OK....整个集群部署完成了。。

踩过的坑。。

本来想在配置文件里搞一个加密的。。结果导致

[root@localhost 7001]# redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 >>> Creating cluster [ERR] Sorry,can't connect to node 127.0.0.1:7001

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


linux下开机自启: 在/etc/init.d目录下新建文件elasticsearch 并敲入shell脚本: 注意, 前两行必须填写,且要注释掉。 第一行为shell前行代码,目的告诉系统使用shell。 第二行分别代表运行级别、启动优先权、关闭优先权,且后面添加开机服务会用到。 shell脚本
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2、赋予脚本可执行权限假设/usr/local/script/autostart.sh是你的脚本路径,给予执行权限 chmod +x /usr
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。 查询当前目录总大小可以使用d
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一但shell关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题 安装Supervisor 1 yum install python-setuptools
设置时区(CentOS 7) 先执行命令timedatectl status|grep 'Time zone'查看当前时区,如果不是时区(Asia/Shanghai),则需要先设置为中国时区,否则时区不同会存在时差。 #已经是Asia/Shanghai,则无需设置 [root@xia
vim /etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTO="static" ONBOOT=yes IPADDR=192.168.8.106 NETMASK=255.255.252.0 GATEWAY=192.168.
一、安装gcc依赖 由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装 [root@localhost local]# yum install -y gcc 二、下载并解压安装包 [root@localhost local
第一步 On CentOS/RHEL 6.*: $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm On CentOS/RHEL 7: $
/// <summary> /// 取小写文件名后缀 /// </summary> /// <param name="name">文件名</param> /// <returns>返回小写后缀,不带“.”</ret
which nohup .bash_profile中并source加载 如果没有就安装吧 yum provides */nohup nohup npm run start & nohup ./kibana &
1.1 MySQL安装 1.1.1 下载wget命令 yum -y install wget 1.1.2 在线下载mysql安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 1.1.3 安装My
重启 reboot shutdown -r now init 6 关闭 init 0 shutdown -h now shutdown -h 20:25 #8点25关机查看内存 free CPU利用率 top 日期 date 设置时间 date 033017002015 #月日时间年 日历 cal
1、firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 :
1 下载并安装MySQL官方的 Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 使用上面的命令就直接下载了安装用的Yum Repository,大概
CentOS6.x CentOS6中转用Upstrat代替以前的init.d/rcX.d的线性启动方式。 一、相关命令 通过initctl help可以查看相关命令 [root@localhost ~]# initctl help Job commands: start Start job. sto
1、使用命令:df -lk 找到已满磁盘 2、使用命令:du --max-depth=1 -h 查找大文件,删除
ifconfig:查看网卡信息 网卡配置文件位置: /etc/sysconfig/network-scripts/文件夹 nmtui:配置网卡 netstat -tlunp:查看端口信息 端口信息存储位置: /etc/services文件 route:查看路由信息 wget:下载网路文件,例如 wg
ps -ef:查看所有进程, ps -ef |grap firewalld 查看与firewalld相关的进程 which :查看进程:which firewalld kill 进程id:杀掉进程 kill 640,强制杀:kill -9 640 man:查看帮助,例如 man ps 查看
useradd:添加用户 useradd abc,默认添加一个abc组 vipw:查看系统中用户 groupadd:添加组groupadd ccna vigr:查看系统中的组 gpasswd:将用户abc添加到ccna组 gpasswd -a abc ccna groups abc:查看用户abc属