一、下载redis
这个可以到官网下载,直接在百度里面搜索redis
二、安装redis
1、安装gcc
1
|
yum install gcc
-
c
+
+
|
2、解压redis文件并且重命名
1
2
3
|
[root@localhost local]
#tar -zxvf /root/redis-3.2.12.tar.gz -C /usr/local/
[root@localhost local]
# cd /usr/local/
[root@localhost local]
# mv redis-3.2.12/ mv redis
|
3、编译redis
1
2
3
|
[root@localhost local]
# cd redis
[root@localhost local]
# make
[root@localhost local]
# make PREFIX=/usr/local/redis install
|
4、测试一下是否已经安装好
1
2
|
[root@localhost redis]
# cd /usr/local/redis/bin
[root@localhost
bin
]
# ./redis-server
|
显示内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
9190
:C
03
Sep
10
:
19
:
09.291
# oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
9190
:C
03
Sep
10
:
19
:
09.292
# Redis version=4.0.1, bits=32, commit=00000000, modified=0, pid=9190, just started
9190
:C
03
Sep
10
:
19
:
09.292
# Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
9190
:M
03
Sep
10
:
19
:
09.295
*
Increased maximum number of
open
files to
10032
(it was originally
set
to
1024
).
9190
:M
03
Sep
10
:
19
:
09.312
# Warning: 32 bit instance detected but no memory limit set. Setting 3 GB maxmemory limit with 'noeviction' policy now.
_._
_.
-
``__ ''
-
._
_.
-
`` `. `_. ''
-
._ Redis
4.0
.
1
(
00000000
/
0
)
32
bit
.
-
`` .
-
```. ```\
/
_.,_ ''
-
._
( ' , .
-
` | `, ) Running
in
standalone mode
|`
-
._`
-
...
-
` __...
-
.``
-
._|
'` _.-'
| Port:
6379
| `
-
._ `._
/
_.
-
' | PID:
9190
`
-
._ `
-
._ `
-
.
/
_.
-
' _.-'
|`
-
._`
-
._ `
-
.__.
-
' _.-'
_.
-
'|
| `
-
._`
-
._ _.
-
'_.-'
| http:
/
/
redis.io
`
-
._ `
-
._`
-
.__.
-
'_.-'
_.
-
'
|`
-
._`
-
._ `
-
.__.
-
' _.-'
_.
-
'|
| `
-
._`
-
._ _.
-
'_.-'
|
`
-
._ `
-
._`
-
.__.
-
'_.-'
_.
-
'
`
-
._ `
-
.__.
-
' _.-'
`
-
._ _.
-
'
`
-
.__.
-
'
9190
:M
03
Sep
10
:
19
:
09.316
# WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
9190
:M
03
Sep
10
:
19
:
09.316
# Server initialized
9190
:M
03
Sep
10
:
19
:
09.318
# WARNING overcommit_memory is set to 0! Background save may fail under low memory condition.
9190
:M
03
Sep
10
:
19
:
09.318
*
Ready to accept connections
|
三、加入开机启动
1、加入开机启动
1
2
|
[root@localhost local]
# cd /usr/local/redis/utils
[root@localhost utils]
# cp redis_init_script /etc/init.d/redis
|
2、编辑启动文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
[root@localhost utils]
# vim /etc/init.d/redis
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT
=
6379
EXEC
=
/
usr
/
local
/
redis
/
bin
/
redis
-
server
#指向正确的bin地址
CLIEXEC
=
/
usr
/
local
/
redis
/
bin
/
redis
-
cli
#这边同上
PIDFILE
=
/
var
/
run
/
redis_${REDISPORT}.pid
CONF
=
"/etc/redis/${REDISPORT}.conf"
case
"$1"
in
start)
if
[
-
f $PIDFILE ]
then
echo
"$PIDFILE exists, process is already running or crashed"
else
echo
"Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if
[ !
-
f $PIDFILE ]
then
echo
"$PIDFILE does not exist, process is not running"
else
PID
=
$(cat $PIDFILE)
echo
"Stopping ..."
$CLIEXEC
-
p $REDISPORT shutdown
while
[
-
x
/
proc
/
${PID} ]
do
echo
"Waiting for Redis to shutdown ..."
sleep
1
done
echo
"Redis stopped"
fi
;;
*
)
echo
"Please use start or stop as first argument"
;;
esac
|
3、创建配置文件
1
2
3
4
5
6
7
|
[root@localhost local]
# mkdir /etc/redis
[root@localhost local]
# cp /usr/local/redis/redis.conf /etc/redis/6379.conf
[root@localhost local]
# cd /etc/redis/
[root@localhost redis]
# vim 6379.conf
#bind 127.0.0.1 #这一行注释
protected
-
mode no
#改成no 表示无需密码登录
daemonize yes
#改成yes
|
4、启动redis
1
2
3
4
|
[root@localhost local]
# service redis start
[root@localhost local]
# ps -ef|grep redis
root
60252
1
0
15
:
27
?
00
:
00
:
00
/
usr
/
local
/
redis
/
bin
/
redis
-
server
*
:
6379
root
61165
48206
0
15
:
44
pts
/
0
00
:
00
:
00
grep
-
-
color
=
auto redis
|
四、redis集群配置
4.1、yum安装下载依赖的插件
1
2
3
4
5
6
7
|
yum
install
ruby -y
yum
install
rubygems -y
yum -y
install
ruby ruby-devel rubygems rpm-build
ruby -version
yum
install
centos-release-scl-rh
scl
enable
rh-ruby23
bash
gem
install
redis
|
4.2、必须准备6个redis,因为是3主3从,所以不得小于6台:
安装上述安装redis的办法,在装5台,分别是,分别装在:/usr/local目录下:
1
2
3
4
5
6
|
redis_6379
redis_6380
redis_6381
redis_6382
redis_6383
redis_6384
|
同时启动文件和配置文件也,配置文件在: /etc/redis/下:
1
2
|
[root@shtw-redisserver09 redis]
# ls
6379.conf 6380.conf 6381.conf 6382.conf 6383.conf 6384.conf
|
配置文件内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#bind 127.0.0.1 #注释掉
port 6380
#端口号需要修改
tcp-backlog 511
timeout 0
tcp-keepalive 300
supervised no
pidfile
/var/run/redis_6380
.pid
#进程号修改
loglevel notice
logfile
""
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 no
slave-priority 100
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated
yes
lua-
time
-limit 5000
cluster-enabled
yes
#开启集群模式
appendonly
yes
cluster-config-
file
nodes-6380.conf
latency-monitor-threshold 0
notify-keyspace-events
""
list-max-ziplist-size -2
list-compress-depth 0
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing
yes
hz 10
aof-rewrite-incremental-fsync
yes
|
完整的文件内容:

上传 redis-trib.rb 文件至/usr/local下:
1
2
3
4
|
[root@shtw-redisserver09
local
]
# cd /usr/local/
[root@shtw-redisserver09
local
]
# rz -y
[root@shtw-redisserver09
local
]
# ll
-rwxr-xr-x 1 root root 60852 Aug 23 2019 redis-trib.rb
|
redis-trib.rb下载地址:https://pan.baidu.com/s/1NqwED60Z9ggiZPOJIco7rA 提取码:tn8d
然后执行如下命令:
1
2
3
4
5
|
[root@shtw-redisserver09
local
]
#./redis-trib.rb create --replicas 1 10.10.202.236:6379 10.10.202.236:6380 10.10.202.236:6381
10.10.202.236:6382 10.10.202.236:6383 10.10.202.236:6384
#如果上述成功了之后,下面的就不要执行了
[root@shtw-redisserver09
local
]
#./redis-trib.rb create --replicas 2 10.10.202.236:6379 10.10.202.236:6380 10.10.202.236:6381
10.10.202.236:6382 10.10.202.236:6383 10.10.202.236:6384
|
重启报错:
>>> Creating cluster
[ERR] Node 127.0.0.1:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
解决方法:删除nodes-xxx.conf配置文件,删除pid文件,删除各节点aof,rdb文件,杀掉所有redis进程,然后重启redis集群搞定