• rocky(centos) 安装redis,并设置开机自启动


    一、下载并安装

    1、官网下载Redis 并安装

    Download | RedisRedisYou can download the last Redis source files here. For additional options, see the Redis downloads section below.Stable (7.2)Redis 7.2 …icon-default.png?t=N7T8https://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、安装完毕

    二、Rocky9 (centos)设置开机自启(7、8版本也支持)

    1、修改配置文件 vim /usr/local/redis/redis.conf ,文件修改内容如下

    注:如下是切换了rdb的路径,需要新建文件夹路径:/data/redis/data

    1. #是否后台启动
    2. daemonize yes
    3. #写明redis的工作空间,一般是在独立磁盘中
    4. dir /data/redis/data
    5. #如果想要外部能访问redis,则改成 本机ip + 空格(这样目前测试无法自启动)
    6. bind 127.0.0.1
    7. #设置redis密码,默认本机访问的话,可以是被注释的,不需要密码
    8. requirepass 123456
    9. #在云服务器上的密码记得设置的复杂些,这里是本地虚拟机所以无关紧要。

     1.1 如果需要其他机器访问,且要自启,则改动

    1. # 其他机器访问,且能自启动
    2. bind 0.0.0.0
    3. #关闭保护模式(绑定127.0.0.1,无需)通过防火墙策略控制安全
    4. protected-mode no

    RHEL 9 中默认没有安装 chkconfig,所以通过service来注册成服务

    2、新建:redis.service 文件,并上传至 /etc/systemd/system 目录下

    1. [Unit]
    2. Description=redis-server
    3. After=network.target
    4. [Service]
    5. Type=forking
    6. ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
    7. ExecReload=/usr/local/redis/bin/redis-server restart
    8. ExecStop=/usr/local/redis/bin/redis-server stop
    9. PrivateTmp=true
    10. [Install]
    11. WantedBy=multi-user.target

    4、加载启动脚本并设置开机自启动:启动并设置开机自启动

    1. #授权
    2. chmod 777 /usr/local/redis/bin/redis-server
    3. #刷新服务
    4. systemctl daemon-reload
    5. #启动服务
    6. systemctl start redis.service
    7. #设置开机自启动
    8. systemctl enable redis.service

    3、查看redis状态

    1. #查看状态
    2. systemctl status redis.service
    3. #其他命令
    4. #停止
    5. systemctl stop redis.service
    6. #重启
    7. systemctl restart redis.service

    三、redis性能优化

    redis 特殊场景:大量查询,且仅供查询缓存服务,数据可以完全丢失的调整

    1)多线程 redis6+

    1. #增大线程数,最大cpu核心线程数 3/4
    2. io-threads 4
    3. #启用读数据多线程
    4. io-threads-do-reads yes

    2)主服务 save rdb 只保存1个:

    1. # 1小时有1个值变化,则生成rbd
    2. save 3600 1

    注:仅适用于不重要的查询服务,因为一旦主宕机,就有可能全部数据丢失;搭建redis 主从,从的save rdb不能关闭,关闭后性能反而降低;

    3)启用lazyfree,降低key大量失效占用的资源

    1. #是否异步驱逐key(建议关闭,避免内存未及时释放)
    2. lazyfree-lazy-eviction no
    3. #是否异步进行key过期事件的处理(建议开启)
    4. lazyfree-lazy-expire yes
    5. #del命令是否异步执行删除操作(建议开启)
    6. lazyfree-lazy-server-del yes
    7. #全同步的时候,是否异步flush本地db(建议关闭)
    8. replica-lazy-flush no

    四:调优系统

    Rocky(Centos)数据库等高并发或高io应用,linux应调优系统-CSDN博客文章浏览阅读131次。默认的最大打开文件数是1024.不满足生产环境的要求。https://blog.csdn.net/qq_26408545/article/details/137542338注:ipv4系统参数可以不加,因为数据包很小

    五、redis 主从优化事项

    一:适用于与rdb文件过大,从库数量较多

    1.无磁盘化,延时初始化同步

    1. 配置 repl-diskless-sync和repl-diskless-sync-delay参数。
    2. repl-diskless-sync:该参数保证进行无磁盘化复制。
    3. repl-diskless-sync-delay:该参数表示等待一定时长再开始复制,这样可以等待多个slave节点从新连接上来。

    2.redis 增大rdb 复制的文件大小

    1. client-output-buffer-limit normal 0 0 0
    2. client-output-buffer-limit replica 256mb 64mb 60
    3. client-output-buffer-limit pubsub 32mb 8mb 60

    二:lazyfree剩余2个参数(默认即可)

    1. #用户删除是否异步
    2. lazyfree-lazy-user-del no
    3. #用户flush db 是否异步
    4. lazyfree-lazy-user-flush no

    三:解决异步复制和脑裂导致的数据丢失(从库超多或集群需考虑)

    1. min-slaves-to-write 1
    2. min-slaves-max-lag 10

    六、根据适合的并发选择合适的机器

    性能测试报告

    查看了下阿里 Redis 的性能测试报告如下,能够达到数十万、百万级别的 QPS(暂时忽略阿里对 Redis 所做的优化),我们从 Redis 的设计和实现来分析一下 Redis 是怎么做的。

    七、centos8-设置开机自启动(或rocky8-,目前不推荐使用)

    在设置之前,做一些自己的修改,以使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 修改配置文件如下

    1. #是否后台启动
    2. daemonize yes
    3. #写明redis的工作空间,一般是在独立磁盘中
    4. dir /data/redis/data
    5. #如果想要外部能访问redis,则改成 本机ip + 空格,这样局域网内的机器都可访问
    6. bind 本机ip 127.0.0.1
    7. #设置redis密码,默认本机访问的话,可以是被注释的,不需要密码
    8. requirepass 123456
    9. #在云服务器上的密码记得设置的复杂些,这里是本地虚拟机所以无关紧要。

    至此核心配置文件就修改完毕了,可以根据自己实际需求修改

    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

    成功启动,如图:

    1. ps -ef|grep redis
    2. #或者
    3. netstat -ntlp | grep 6379

    9、注册到开机自启动服务中

    chkconfig redis_init_script on

    10、测试

    输入reboot,重启centOs7。

    ps -ef | grep redis

    重启成功后,重新连接,输入 开机自启动成功!

  • 相关阅读:
    猎聘爬虫(附源码)
    React中JSX语法入门
    alsa音频pcm设备之i2c调试
    风控安全产品系统设计的一些思考
    mongodb、mysql、redis 区别
    看不懂微信小程序中的文件都是什么?
    leetcode 94.二叉树的中序遍历(非递归和递归遍历)
    怎么设置 idea terminal 窗口的编码格式
    09数据结构与算法刷题之【位运算】篇
    Mysql学习之——增删改查语句
  • 原文地址:https://blog.csdn.net/qq_26408545/article/details/132696788