(1) 下载
http://redis.io/download
redis-4.0.11.tar.gz
(2) 使用root创建用户和组
groupadd -g 8001 redis
useradd -u 8001 -g 8001 redis
id redis
passwd redis
(3) 调整redis用户的ulimit
echo "redis hard nofile 10240" >> /etc/security/limits.conf
echo "redis soft nofile 10240" >> /etc/security/limits.conf
echo "redis hard nproc 8192" >> /etc/security/limits.conf
echo "redis soft nproc 8192" >> /etc/security/limits.conf
(4) 创建Redis的安装路经
mkdir -p /app/redis
chown -R redis:redis /app/redis
mkdir -p /app/redis/log
mkdir -p /app/redis/conf
mkdir -p /app/redis/data
chown -R redis:redis /app/redis
(5) 编译、安装源程序
chmod 777 -R /soft
su - redis
cd /soft
tar zxvf redis-4.0.11.tar.gz
cd redis-4.0.11
make
cd src
make PREFIX=/app/redis install
cp ../redis.conf /app/redis/conf
(6) 配置环境变量
vi ~/.bash_profile
PATH=$PATH:$HOME/.local/bin:/app/redis/bin:$HOME/bin
source ~/.bash_profile
(7) 性能调优
su - root
① 调整 vm.overcommit_memory
vi /etc/sysctl.conf
# 追加
# vm.overcommit_memory = 1
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
内核参数 overcommit_memory
vm.overcommit_memory 其关注的是内存分配策略
② 调整 Transparent Huge Pages (THP)
解决:redis 做 rdb 时会有部分请求超时的 case
echo never > /sys/kernel/mm/transparent_hugepage/enabled
并在/etc/rc.local 追加
echo "never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
③ TCP backlog 设置
echo 2048 > /proc/sys/net/core/somaxconn
在/etc/sysctl.conf 添加 net.core.somaxconn = 2048
echo "net.core.somaxconn = 2048" >> /etc/sysctl.conf
sysctl -p
④ 调整redis.conf
su - redis
vi /app/redis/conf/redis.conf
# 在最后面加入下面两行
daemonize yes
logfile "/app/redis/log/redis.log"
requirepass jason # Redis密码
#bind 127.0.0.1 # 不修改容易被攻击
bind 192.168.31.51
(8) 启动Redis服务
su - redis
redis-server /app/redis/conf/redis.conf
ps -ef|grep redis
- Redis 服务端的默认连接端口是 6379
netstat -an |grep 6379
(9) 客户端连接
redis-cli -a password
redis-cli -h 192.168.31.51 -a jason
redis-cli -h 192.168.31.51
redis-cli
redis-cli -r 3 -h 192.168.31.51 -a jason ping //返回ping表示127.0.0.1:6379能通,r代表次数
(10) 停止 Redis 实例
/app/redis/bin/redis-cli -h 192.168.31.51 -a jason shutdown
# 或
pkill redis-server
(11) 设置开机自动启动
- root用户下操作
su - root
vi /etc/rc.local
su - redis -c "/app/redis/bin/redis-server /app/redis/conf/redis.conf"