• redis优化


    一、配置文件优化

    bind 127.0.0.1  //允许连接的ip,如果就本机连接最后127.0.0.1
    protected-mode yes  //是否开启保护模式。默认开启,如果没有设置bind项的ip和redis密码的话,服务将只允许本地访 问
    requirepass "password" //连接的密码
    port  6379  //启动端口
    tcp-backlog 511 //高并发环境下需要一个高backlog值来避免慢客户端连接问题
    timeout 300 //客户端空闲多少秒后关闭连接(0为不关闭)
    tcp-keepalive 300 //如果设置不为0,就使用配置tcp的SO_KEEPALIVE值,使用keepalive有两个好处:检测挂掉的对端。降低中间设备出问题而导致网络看似连接却已经与对端端口的问题。在Linux内核中,设置了keepalive,redis会定时给对端发送ack。检测到对端关闭需要两倍的设置值
    daemonize yes //是否通过upstart或systemd管理守护进程。默认no没有服务监控
    supervised no //同上,拥有监控
    pidfile "/var/run/redis.pid" //pid文件
    loglevel notice //日志级别,选项有debug, verbose, notice, warning
    logfile "/var/log/redis.log" //日志文件
    databases 16 //可用数据库数,默认值为16,默认数据库为0,数据库范围在0-(database-1)之间
    ##### 持久化设置######
    #不写磁盘的话就把所有 "save" 设置注释掉
    #通过添加一条带空字符串参数的save指令也能移除之前所有配置的save指令
    save ""    
    save 900 1 //900秒(15分钟)之后,且至少1次变更
    save 300 10 //300秒(5分钟)之后,且至少10次变更
    save 60 10000 // 60秒之后,且至少10000次变更
    ##redis禁用命令
    rename-command FLUSHALL "" // 删除所有数据库的所有key
    rename-command CONFIG   ""  //查看与修改配置的命令
    rename-command EVAL     ""  //执行lua脚本
    rdbcompression yes //是否在备份.rdb文件时是否用LZF压缩字符串,默认设置为yes。如果想节约cpu资源可以把它设置为no
    rdbchecksum yes //生成的关闭校验的RDB文件有一个0的校验和,它将告诉加载代码跳过检查
    dbfilename dump.rdb //rdb文件名
    dir /data/rdb //备份文件目录,rdb存储目录
    ######主从同步设置
    masterauth "password" //master连接密码
    slave-serve-stale-data yes //"yes" (默认值),slave会继续响应客户端请求,可能是正常数据,也可能是还没获得值的空数据. "no",slave会回复"正在从master同步(SYNC with master in progress)"来处理各种请求,除了 INFO 和 SLAVEOF 命令
    slave-read-only yes //限制你可以用'rename-command'来隐藏所有的管理和危险命令来增强只读slave的安全性
    repl-diskless-sync yes //同步策略: 磁盘或socket
    repl-diskless-sync-delay 5 //如果非磁盘同步方式开启,可以配置同步延迟时间,以等待master产生子进程通过socket传输RDB数据给slave
    repl-ping-slave-period 10 // slave根据指定的时间间隔向master发送ping请求。默认10秒
    repl-disable-tcp-nodelay no //是否在slave套接字发送SYNC之后禁用 TCP_NODELAY
    repl-backlog-size 100mb //设置数据备份的backlog大小。backlog是一个slave在一段时间内断开连接时记录salve数据的缓冲,所以一个slave在重新连接时,不必要全量的同步,而是一个增量同步就足够了,将在断开连接的这段# 时间内把slave丢失的部分数据传送给它。
    appendonly no //开启append only模式之后,redis会把所接收到的每一次写操作请求都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态。
    appendfilename "appendonly.aof" // AOF文件名
    appendfsync everysec //有些操作系统会真的把数据马上刷到磁盘上;有些则会尽快去尝试这么做,
    # no:不要立刻刷,只有在操作系统需要刷的时候再刷。比较快。
    # always:每次写操作都立刻写入到aof文件。慢,但是最安全。
    # everysec:每秒写一次。折中方案。
    no-appendfsync-on-rewrite no //缓解aof问题。如果把这个设置成"yes"带来了延迟问题,就保持"no",这是保存持久数据的最安全的方式。
    auto-aof-rewrite-percentage 100 //指定百分比为0会禁用AOF自动重写特性
    auto-aof-rewrite-min-size 64mb //指定百分比为0会禁用AOF自动重写特性
    aof-load-truncated yes //如果设置为yes,如果一个因异常被截断的AOF文件被redis启动时加载进内存,redis将会发送日志通知用户。如果设置为no,erdis将会拒绝启动。此时需要用"redis-check-aof"工具修复文件
    slowlog-log-slower-than 10000 //慢查询日志,记录超过多少微秒的查询命令,10000=1s
    slowlog-max-len 128 //记录大小,可通过SLOWLOG RESET命令重置
    maxclients 10000 //设置最多同时连接的客户端数量。默认这个限制是10000个客户端
    ################ 集群 ############

    二、安全优化

    1、如果只是本机访问redis的话bind就设置127.0.0.1,或者设置内网网段访问,尽量不使用0.0.0.0

    2、设置密码

    3、千万不要使用root运行redis

    4、禁用config等危险命令

  • 相关阅读:
    网上Silverlight项目收集
    在Silverlight页面里显示HTML的免费控件下载(附使用方法代码)
    Silverlight SNS项目
    Visual Studio 2010下的RIA开发,Silverlight 4线下技术交流会期待您的参与!
    Windows7硬件展示与客户端信息收集
    Silverlight版的神奇罗盘,仿Google的Flash神奇罗盘
    (解题思路)Entity Framework 如动态创建表或者列
    (学)这些年来的几宗罪
    (学)在SQL2005中使用分区表技术
    (医)有痔青年的福音
  • 原文地址:https://www.cnblogs.com/zhangb8042/p/10495948.html
Copyright © 2020-2023  润新知