• Redis应用配置项说明


    近期整理了下项目中Redis配置参数,以便学习备用~

    #指定内存大小,格式为1k 1GB 1M,单位不区分大小写

    # 1k  => 1000 bytes

    # 1kb => 1024 bytes

    # 1m  => 1000000 bytes

    # 1mb => 1024*1024 bytes

    # 1g  => 1000000000 bytes

    # 1gb => 1024*1024*1024 bytes

    #redis连接的端口 启动后使用redis-cli -p 7001连接对应端口

    port 7001

    # 默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes。

    # 当redis作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面。

    daemonize no

    #当redis作为守护进程运行的时候,它会把 pid 默认写到 /var/run/redis.pid 文件里面,

    # 但是你可以在这里自己制定它的文件位置。

    pidfile /usr/local/bin/redis.pid

    ## 设置数据库的数目(默认数据库是 DB 0)

    databases 16

    #该配置项为快照,格式为: save<间隔时间(秒)><写入次数>

    如下表示:900 秒后如果至少有 1 个 key 的值变化,则保存;300 秒后如果至少有 10 个 key 的值变化,则保存;60 秒后如果至少有 10000 个 key 的值变化,则保存,也可不设置,不进行保存

    save 900 1

    save 300 10

    save 60 10000

    # 默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作,

    # 这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘,

    # 否则就会没人注意到灾难的发生。

    # 如果后台保存进程重新启动工作了,redis 也将自动的允许写操作。

    # 然而你要是安装了靠谱的监控,你可能不希望 redis 这样做,那你就改成 no 好了。

    stop-writes-on-bgsave-error yes

    # 是否在 dump .rdb 数据库的时候使用 LZF 压缩字符串

    # 默认都设为 yes

    # 如果你希望保存子进程节省点 cpu ,你就设置它为 no ,

    # 不过这个数据集可能就会比较大

    rdbcompression yes

    rdbchecksum yes

    # rdb info  设置dump的文件位置,写入指定目录

    dbfilename dump_7001.rdb

    dir /etc/redis/rdb/

    #主从复制 使用slaveof来让一个redis实例成为另一个redis实例的副本,这个只需要在slave上配置.

    #slaveof <masterip><masterport>

    #如果master 需要密码认证,就在这里设置

    #masterauth <master-password>

    #如果为yes ,slave仍然会应答客户端请求,但返回的数据可能过时,也可能在第一次同步时为空

    slave-serve-stale-data yes

    #设置slave为只读的

    slave-read-only yes

    #无磁盘复制功能

    repl-diskless-sync no

    #当收到第一个请求时,等待多个slave一起来请求之间的间隔时间

    repl-diskless-sync-delay 5

    #在slave和master同步后(发送psync/sync),后续的同步是否设置成TCP_NODELAY

    #假如设置成yes,则redis会合并小的TCP包从而节省带宽,但会增加同步延迟(40ms),造成master和slave数据不一致。

    #假如设置成no,则redis master会立即发送同步数据,没有延迟。

    repl-disable-tcp-nodelay yes

    #当master不能正常工作的时候,Redis Sentinel会从slaves中选出一个新的master,这个值越小,就越会被优先选中,但是如果是0,就是意味着这个slave不可能被选中。

    slave-priority 100

    #最大使用内存

    maxmemory 20g

    #是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。之前配置的save同步数据,是以间隔性质,也就是说,有段时间可能数据只存在于内存

    appendonly no

    #默认是everysec,按照速度和安全折中是最好的,每一秒写入aof文件,并完成磁盘同步

    appendfsync everysec

     

    #redis 提供了两种持久化机制,rdb和aof。如果该参数设置为no,是最安全的方式,不会丢失数据,但是要忍受阻塞的问题,如果设置为yes,这就相当于将appendfsync设置为no,这说明并没有执行磁盘操作,只是写入了缓冲区,因此这样并不会造成阻塞(因为没有竞争磁盘),但是如果这个时候redis挂掉,就会丢失数据。

    no-appendfsync-on-rewrite yes

     

    #限制脚本的最长运行时间

    lua-time-limit 5000

    #slowlog是redis用于记录记录慢查询执行时间的日志系统

    slowlog-log-slower-than 10000

     

    #hash类型的数据结构在编码上可以使用ziplist和hashtable。ziplist的特点就是文件存储(以及内存存储)所需的空间较小,在内容较小时,性能和hashtable几乎一样.因此redis对hash类型默认采取ziplist。如果hash中条目的条目个数或者value长度达到阀值,将会被重构为hashtable

    hash-max-ziplist-entries 128

    #这个参数指的是ziplist中允许存储的最大条目个数,,默认为512

    hash-max-ziplist-value 1024

     以下如上:

    ist-max-ziplist-entries 256

    list-max-ziplist-value 1024

    set-max-intset-entries 512

    zset-max-ziplist-entries 128

    zset-max-ziplist-value 64

    hll-sparse-max-bytes 3000

     

    #指定是否激活重置哈希,默认为开启

    activerehashing yes

     

    #默认情况下,"hz"的被设定为10.提高该值将在Redis空闲时使用更多的CPU时,但同时当有多个key同时到期会使Redis的反映更灵敏,以及超时可以更精确地处理。

    #范围是1到500之间,但是值超过100通常不是一个好主意。

    #大多数用户应该使用10这个默认值,只有在非常低的延迟要求时有必要提高到100.

    hz 10

     

    #当一个子进程重写AOF文件时,如果启用下面的选项,则文件每生成32M数据会被同步。为了增量式的写入磁盘

    #并且避免大的延迟高峰这个指令是非常有用的

    aof-rewrite-incremental-fsync yes

     

  • 相关阅读:
    toCvCopy与toCvShare的区别
    ROS使用catkin_make编译指定功能包
    Ubuntu在apt update时发生错误解决办法
    C++ 环境设置
    C++ 注释
    protobuf docs
    nvidiasmi 命令查看GPU显存使用情况
    C++ 数据类型
    day08 spinnaker
    解决IDEA下Tomcat日志乱码问题
  • 原文地址:https://www.cnblogs.com/yangsy0915/p/5919290.html
Copyright © 2020-2023  润新知