安装
版本和常见问题
错误1:
make[3]: cc: Command not found
yum install gcc -y
错误2:
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory #include <jemalloc/jemalloc.h>
make MALLOC=libc
错误3:
经验整理:本人系统是centos7.7,安装redis6.0.6时遇到如下问题,其它贴子说要升级gcc版本5.3以上,默认安装的是4.8.5。但由于gcc5.3版本下载遇到一些问题,个人最终还是选择redis5.0.8版本。完美适配centos7.7
struct redisServer’ has no member named ‘server_cpulist
server.c:5208:15: error: ‘struct redisServer’ has no member named ‘maxmemory’ if (server.maxmemory > 0 && server.maxmemory < 1024*1024)
redis 6.0.6要求gcc 版本必须大于5.3
查看gcc默认安装的版本
gcc -v
[root@test3 redis-6.0.6]$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
错误4:
You need tcl 8.5 or newer in order to run the Redis test make: ***[test] Error_1
解决办法是用yum安装tcl8.5(或去tcl的官方网站http://www.tcl.tk/下载8.5版本,并参考官网介绍进行安装)
yum install tcl
主从搭建
配置主从同步文件
# 服务器端口号,主从分别修改为7001 7002 7003
port 7001
# 使得Redis可以跨网络访问
bind 0.0.0.0
# 配置reids的密码
requirepass "111111"
# 下面两个配置只需要配置从节点(slave)
# 配置主服务器地址、端口号
replicaof 127.0.0.1 7001
# 主服务器密码
masterauth "111111"
启动三个服务:
$ ./src/redis-server redis.conf
$ ./src/redis-server slave.conf
$ ./src/redis-server slave1.conf
主服务验证同步信息:
[root@test3 redis-5.0.8]$ ./src/redis-cli -h 127.0.0.1 -p 7001
127.0.0.1:7001> auth 111111
OK
127.0.0.1:7001> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=7002,state=online,offset=126,lag=0
slave1:ip=127.0.0.1,port=7003,state=online,offset=126,lag=0
master_replid:cfe84e422462da8b9ef4ab25b3bb6d88e915792c
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:126
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:126
从节点1验证同步信息:
[root@test3 redis-5.0.8]$ ./src/redis-cli -h 127.0.0.1 -p 7002
127.0.0.1:7002> auth 111111
OK
127.0.0.1:7002> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:7001
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:224
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:cfe84e422462da8b9ef4ab25b3bb6d88e915792c
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:224
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:224
从节点2验证信息:
[root@test3 redis-5.0.8]$ ./src/redis-cli -h 127.0.0.1 -p 7003
127.0.0.1:7003>
127.0.0.1:7003>
127.0.0.1:7003> auth 111111
OK
127.0.0.1:7003> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:7001
master_link_status:up
master_last_io_seconds_ago:8
master_sync_in_progress:0
slave_repl_offset:2268
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:cfe84e422462da8b9ef4ab25b3bb6d88e915792c
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:2268
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:2268