1、安装依赖
yum -y install gcc gcc-c++
2、解压Redis文件包
tar -zxf redis-5.0.9.tar.gz
3、进入Redis文件
cd redis-5.0.9
4、安装编译
make install PREFIX=/usr/local/redis
5、复制文件
cp redis.conf /usr/local/redis/bin/
6、进入Redis文件bin目录中
cd /usr/local/redis/bin
7、复制启动工具到/usr/local/bin目录下
cp redis-cli /usr/local/bin/
8、修改配置
vi /usr/local/redis/bin/redis.conf
bind 192.168.31.214 127.0.0.1
pidfile /data/redis/6379.pid
logfile /data/redis/6379.log
dbfilename 6379.rdb
dir /data/redis/
daemonize yes
databases 128
save 3600 1
save 300 100
save 60 10000
masterauth 123456
requirepass 123456
maxclients 60000 最大客户端数量
maxmemory <bytes> 最大内存限制 一般采用的是内存的40%
maxmemory-policy allkeys-lru # 内存达到限制值的处理策略 1、volatile-lru:只对设置了过期时间的key进行LRU(默认值) 2、allkeys-lru : 删除lru算法的key 3、volatile-random:**随机删除即将过期key 4、allkeys-random:**随机删除 5、volatile-ttl : 删除即将过期的 6、noeviction : 永不过期,返回错误
appendonly yes #默认不开启aof 使用rdb方式持久化的,改成yes
appendfilename "appendonly.aof" #改成6379.aof
appendfsync everysec #改成每秒执行一次同步
notify-keyspace-events Ex
slowlog-log-slower-than 100
slowlog-max-len 500
client-output-buffer-limit
client-output-buffer-limit slave 256mb 64mb 60
lazyfree-lazy-eviction:表示当 Redis 运行内存超过 maxmeory 时,是否开启 lazy free 机制删除;
lazyfree-lazy-expire:表示设置了过期时间的键值,当过期之后是否开启 lazy free 机制删除;
lazyfree-lazy-server-del:有些指令在处理已存在的键时,会带有一个隐式的 del 键的操作,比如 rename 命令,当目标键已存在,Redis 会先删除目标键,如果这些目标键是一个 big key,就会造成阻塞删除的问题,此配置表示在这种场景中是否开启 lazy free 机制删除;
slave-lazy-flush:针对 slave(从节点) 进行全量数据同步,slave 在加载 master 的 RDB 文件前,会运行 flushall 来清理自己的数据,它表示此时是否开启 lazy free 机制删除。
建议开启其中的 lazyfree-lazy-eviction、lazyfree-lazy-expire、lazyfree-lazy-server-del 等配置,这样就可以有效的提高主线程的执行效率。
9、让redis开机自启
vi /etc/systemd/system/redis.service
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
将服务加入开机自启 systemctl enable redis.service
systemctl start redis.service #启动redis服务
systemctl disable redis.service #停止开机自启动
systemctl stop redis.service #停止redis服务
systemctl status redis.service #查看服务当前状态
systemctl restart redis.service #重新启动服务
systemctl list-units --type=service #查看所有已启动的服务
10、开发防火墙
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload