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 的运行速度,不会出现间歇性卡顿的困扰。
评论区