yum 安装 Redis

Scroll Down

1.先启用 remi 源

yum install epel-release yum-utils
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi

2.安装

目前可安装到的版本是:V3.2.12

yum install redis

docker下安装: docker pull redis:3.2.12

3.修改配置文件

vi /etc/redis.conf

修改参考:

############################
#允许远程访问
#bind 127.0.0.1
#端口号
port 6378
#设置密码
requirepass xxx
#关闭保护
protected-mode no
############################

4.启动

systemctl start redis.service

5.测试

redis-cli -p 6378 -a xxx
set 'test' 'hello'
get 'test'

6.开机启动

systemctl enable redis.service

7.禁用 THP 特性

Linux kernel 在 2.6.38 内核增加了 Transparent Huge Pages (THP) 特性 ,支持大内存页 2MB 分配,默认开启。

当开启了 THP 时,fork 的速度会变慢,fork 之后每个内存页从原来 4KB 变为 2MB,会大幅增加重写期间父进程内存消耗。

同时每次写命令引起的复制内存页单位放大了 512 倍,会拖慢写操作的执行时间,导致大量写操作慢查询。例如简单的 incr 命令也会出现在慢查询中。

因此 Redis 建议将此特性进行禁用,禁用方法如下:

echo never >  /sys/kernel/mm/transparent_hugepage/enabled

为了使机器重启后 THP 配置依然生效,可以在/etc/rc.local中追加以上命令。

Redis 4.0+

Redis 4.0 之后 新增了一种混合持久化方式

混合持久化是结合了 RDB 和 AOF 的优点,在写入的时候,先把当前的数据以 RDB 的形式写入文件的开头,再将后续的操作命令以 AOF 的格式存入文件,这样既能保证 Redis 重启时的速度,又能减低数据丢失的风险。

查询是否开启混合持久化可以使用config get aof-use-rdb-preamble命令。

其中yes表示已经开启混合持久化,no表示关闭,Redis 5.0 默认值为yes。如果是其他版本的 Redis 首先需要检查一下,是否已经开启了混合持久化,如果关闭的情况下,可以通过以下两种方式开启:

  • 通过命令行开启
config set aof-use-rdb-preamble yes

缺点是重启 Redis 服务之后,设置的配置就会失效。

  • 通过修改 Redis 配置文件开启
    修改redis.conf文件,把
aof-use-rdb-preamble no

改为

aof-use-rdb-preamble yes

配置完成之后,需要重启 Redis 服务器,配置才能生效,但修改配置文件的方式,在每次重启 Redis 服务之后,配置信息不会丢失。

需要注意的是,在非必须进行持久化的业务中,可以关闭持久化,这样可以有效的提升 Redis 的运行速度,不会出现间歇性卡顿的困扰。


部分参考:《大厂内部资料》Redis 性能优化的 13 条军规!全网首发