https://redis.io/download/
2、上传下载好的redis压缩包到 /usr/local
3、解压
tar -xzvf redis-7.2.0.tar.gz
并将解压文件重命名为 redis
mv redis-7.2.0 redis
4、安装所需gcc环境
yum install gcc gcc-c++ automake autoconf libtool libstdc++-devel make -y
5、切换路径
cd redis
6、安装
make && make PREFIX=/usr/local/redis/ install
7、安装完毕
1、修改配置文件 vim /usr/local/redis/redis.conf ,文件修改内容如下
注:如下是切换了rdb的路径,需要新建文件夹路径:/data/redis/data
- #是否后台启动
- daemonize yes
- #写明redis的工作空间,一般是在独立磁盘中
- dir /data/redis/data
- #如果想要外部能访问redis,则改成 本机ip + 空格(这样目前测试无法自启动)
- bind 127.0.0.1
- #设置redis密码,默认本机访问的话,可以是被注释的,不需要密码
- requirepass 123456
- #在云服务器上的密码记得设置的复杂些,这里是本地虚拟机所以无关紧要。
1.1 如果需要其他机器访问,且要自启,则改动
- # 其他机器访问,且能自启动
- bind 0.0.0.0
- #关闭保护模式(绑定127.0.0.1,无需)通过防火墙策略控制安全
- protected-mode no
RHEL 9 中默认没有安装 chkconfig,所以通过service来注册成服务
2、新建:redis.service 文件,并上传至 /etc/systemd/system 目录下
- [Unit]
- Description=redis-server
- After=network.target
-
- [Service]
- Type=forking
- ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
- ExecReload=/usr/local/redis/bin/redis-server restart
- ExecStop=/usr/local/redis/bin/redis-server stop
- PrivateTmp=true
-
- [Install]
- WantedBy=multi-user.target
4、加载启动脚本并设置开机自启动:启动并设置开机自启动
- #授权
- chmod 777 /usr/local/redis/bin/redis-server
- #刷新服务
- systemctl daemon-reload
- #启动服务
- systemctl start redis.service
- #设置开机自启动
- systemctl enable redis.service
3、查看redis状态
- #查看状态
- systemctl status redis.service
-
- #其他命令
- #停止
- systemctl stop redis.service
- #重启
- systemctl restart redis.service
redis 特殊场景:大量查询,且仅供查询缓存服务,数据可以完全丢失的调整
- #增大线程数,最大cpu核心线程数 3/4
- io-threads 4
- #启用读数据多线程
- io-threads-do-reads yes
- # 1小时有1个值变化,则生成rbd
- save 3600 1
注:仅适用于不重要的查询服务,因为一旦主宕机,就有可能全部数据丢失;搭建redis 主从,从的save rdb不能关闭,关闭后性能反而降低;
- #是否异步驱逐key(建议关闭,避免内存未及时释放)
- lazyfree-lazy-eviction no
- #是否异步进行key过期事件的处理(建议开启)
- lazyfree-lazy-expire yes
- #del命令是否异步执行删除操作(建议开启)
- lazyfree-lazy-server-del yes
- #全同步的时候,是否异步flush本地db(建议关闭)
- replica-lazy-flush no
Rocky(Centos)数据库等高并发或高io应用,linux应调优系统-CSDN博客文章浏览阅读131次。默认的最大打开文件数是1024.不满足生产环境的要求。https://blog.csdn.net/qq_26408545/article/details/137542338注:ipv4系统参数可以不加,因为数据包很小
一:适用于与rdb文件过大,从库数量较多
1.无磁盘化,延时初始化同步
- 配置 repl-diskless-sync和repl-diskless-sync-delay参数。
- repl-diskless-sync:该参数保证进行无磁盘化复制。
- repl-diskless-sync-delay:该参数表示等待一定时长再开始复制,这样可以等待多个slave节点从新连接上来。
2.redis 增大rdb 复制的文件大小
- client-output-buffer-limit normal 0 0 0
- client-output-buffer-limit replica 256mb 64mb 60
- client-output-buffer-limit pubsub 32mb 8mb 60
二:lazyfree剩余2个参数(默认即可)
- #用户删除是否异步
- lazyfree-lazy-user-del no
- #用户flush db 是否异步
- lazyfree-lazy-user-flush no
三:解决异步复制和脑裂导致的数据丢失(从库超多或集群需考虑)
- min-slaves-to-write 1
- min-slaves-max-lag 10
性能测试报告
查看了下阿里 Redis 的性能测试报告如下,能够达到数十万、百万级别的 QPS(暂时忽略阿里对 Redis 所做的优化),我们从 Redis 的设计和实现来分析一下 Redis 是怎么做的。

在设置之前,做一些自己的修改,以使redis更好的符合我们的生产环境
1、进入redis目录下的ustils
cd /usr/local/redis/utils/
2、拷贝
cp redis_init_script /etc/init.d/
3、回到redis目录。并新建文件夹
cd /usr/local/redis
4、vim redis.conf 修改配置文件如下
- #是否后台启动
- daemonize yes
- #写明redis的工作空间,一般是在独立磁盘中
- dir /data/redis/data
- #如果想要外部能访问redis,则改成 本机ip + 空格,这样局域网内的机器都可访问
- bind 本机ip 127.0.0.1
- #设置redis密码,默认本机访问的话,可以是被注释的,不需要密码
- requirepass 123456
- #在云服务器上的密码记得设置的复杂些,这里是本地虚拟机所以无关紧要。
至此核心配置文件就修改完毕了,可以根据自己实际需求修改
5、进入/etc/init.d/,修改一开始复制的启动脚本redis_init_script 。

cd /etc/init.d/
vim redis_init_script
(这里修改了CONF="/usr/local/redis/redis.conf",指定我们的配置文件的位置。其他像端口之类的保持默认即可)
6、赋予脚本可执行文件
chmod 777 redis_init_script
7、启动脚本
./redis_init_script start
成功启动,如图:
- ps -ef|grep redis
- #或者
- netstat -ntlp | grep 6379
9、注册到开机自启动服务中
chkconfig redis_init_script on
10、测试
输入reboot,重启centOs7。
ps -ef | grep redis
重启成功后,重新连接,输入 开机自启动成功!