Centos7安装配置Redis6.0.1

文章目录

  • 1 升级gcc
  • 2 安装配置Redis6.0.1
  • 3 访问测试

前几天Redis官方发布了 Redis6.0.1 Stable 版本,本文详细介绍下Centos7安装配置Redis6.0.1的步骤。
先大致说一下Redis6.0之前版本的优缺点
优点:

  • 丰富的数据结构
  • 持久化存储:RDB、AOF
  • 主从同步,故障转移(哨兵模式)
  • 内存数据库

缺点:

  • 单线程
  • 单核(不能充分利用CPU多核性能)

Redis6.0版本在原有的基础上引入了多线程I/O,并且充分利用了多核CPU系统的性能;虽然支持了多线程I/O,但是这个多线程只是用来处理网络数据的读写协议解析,执行命令仍然是单线程。新版本还增加了acl、cluster proxy等新功能,后续慢慢研究一下。

有关老版本和新版本的性能对比可以参考下边这篇文章,感觉写的不错。

Redis 6.0与老版性能对比评测

1 升级gcc

在编译redis6.0.1之前需要升级gcc的版本,默认情况yum安装的gcc版本是4.8.5,由于版本过低,在编译时会报如下错误(部分截取)。

In file included from server.h:63:0,
                 from server.c:30:
server.c:4373:30: 错误:‘struct redisServer’没有名为‘slaves’的成员
             listLength(server.slaves));
                              ^
adlist.h:57:25: 附注:in definition of macro ‘listLength’
 #define listLength(l) ((l)->len)
                         ^
server.c:4377:19: 错误:‘struct redisServer’没有名为‘repl_min_slaves_to_write’的成员
         if (server.repl_min_slaves_to_write &&
                   ^
server.c:4378:19: 错误:‘struct redisServer’没有名为‘repl_min_slaves_max_lag’的成员
             server.repl_min_slaves_max_lag) {
                   ^
server.c:4381:23: 错误:‘struct redisServer’没有名为‘repl_good_slaves_count’的成员
                 server.repl_good_slaves_count);

......


server.c: 在函数‘hasActiveChildProcess’中:
server.c:1476:1: 警告:在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
 }
 ^
server.c: 在函数‘allPersistenceDisabled’中:
server.c:1482:1: 警告:在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
 }
 ^
server.c: 在函数‘writeCommandsDeniedByDiskError’中:
server.c:3747:1: 警告:在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
 }
 ^
server.c: 在函数‘iAmMaster’中:
server.c:4914:1: 警告:在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]
 }
 ^
make[1]: *** [server.o] 错误 1
make[1]: 离开目录“/application/redis-6.0.1/src”
make: *** [install] 错误 2

若不想编译安装gcc高版本,这里推荐一种yum安装的方式。

1、安装scl源

yum install centos-release-scl scl-utils-build

2、列出scl可用源

yum list all --enablerepo='centos-sclo-rh'

3、安装8版本的gcc、gcc-c++、gdb工具链(toolchian)

yum install -y devtoolset-8-toolchain
scl enable devtoolset-8 bash
gcc --version

gcc version

2 安装配置Redis6.0.1

1、获取压缩包

# 从官网或者github获取tar包
wget http://download.redis.io/releases/redis-6.0.1.tar.gz

2、解压并指定安装目录

tar -xf redis-6.0.1.tar.gz
cd redis-6.0.1.tar.gz
make PREFIX=/opt/redis-6.0.1/ install

3、make test(可不做)

# make无误后可以make test测试下
# 若报错 You need tcl 8.5 or newer in order to run the Redis test 升级一下tcl即可

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz  
tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/  
cd  /usr/local/tcl8.6.1/unix/  
./configure && make && make install

[root@Mredis redis-6.0.1]# make test

......

\o/ All tests passed without errors!

Cleanup: may take some time... OK  # 说明无误
make[1]: 离开目录“/application/redis-6.0.1/src”

4、生成配置文件

mkdir /opt/redis-6.0.1/conf/6379
cd /opt/redis-6.0.1/conf/6379

# 拷贝默认配置文件至6379实例目录下
cp /application/redis-6.0.1/redis.conf /opt/redis-6.0.1/conf/6379/

5、修改配置文件
大致跟老版本的一样,由于新版本添加了多线程的功能,所以还需要根据系统CPU核心数量去配置此参数。

# bind本地ip
bind 192.168.0.100

# 根据需求去修改端口
port 6379

# 以daemon方式运行
daemonize yes

# 日志文件
logfile "/opt/redis-6.0.1/conf/6379/logs/redis_6379.log"

# 数据保存目录
dir /opt/redis-6.0.1/conf/6379/data

# 内存最大使用量
maxmemory 512MB

# I/O线程数,官方建议配置系统核心数量的3/4,我这里是2核,所以最多配置2就可以了
# 可以通过 lscpu 命令去查看本地系统的CPU核心数
io-threads 2

# 默认情况下,如果不开启多线程读功能,那么多线程只能进行写操作,是否开启多线程读功能看需求
io-threads-do-reads yes

6、启动redis,并配置开机自启

# 启动
/opt/redis-6.0.1/bin/redis-server /opt/redis-6.0.1/conf/6379/redis.conf

# 配置开机自启
echo "/opt/redis-6.0.1/bin/redis-server /opt/redis-6.0.1/conf/6379/redis.conf" >> /etc/rc.local

可以通过配置环境变量的方式使得redis相关的命令在全局生效。

3 访问测试

[root@Mredis ~]# /opt/redis-6.0.1/bin/redis-cli -h 192.168.0.100 -p 6379
192.168.0.100:6379> KEYS *
(empty array)
192.168.0.100:6379> set a bbb
OK
192.168.0.100:6379> get a
"bbb"
192.168.0.100:6379> 

参考文章

Centos8平台安装redis6.0.1
Centos 7 yum升级GCC 8版本
Redis命令大全

你可能感兴趣的:(Redis)