Redis配置文件参数说明(redis.conf)

流楚丶格念 2021-07-20 04:19:04
redis


  1. daemonize no
    默认情况下,redis不是在后台运行的。如果需要在后台运行,把该项的值更改为yes。

  2. pidfile /var/run/redis.pid
    当redis在后台运行的时候,redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他位置。当运行多个redis服务时,需要指定不同的pid文件和端口。

  3. port 6379
    指定redis运行的端口,默认是6379。

  4. bind 127.0.0.1
    指定redis只接收来自于该IP地址的请求看,如果不进行设置,那么将处理所有请求。在生产环境中最好设置该项。

  5. loglevel debug
    指定日志记录级别,其中redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose。
    1 . debug表示记录很多信息,用于开发和测试
    2.verbose表示记录有用的信息, 但不像debug会记录那么多
    3.notice表示普通的verbose,常用于生产环境
    4.warning 表示只有非常重要或者严重的信息会记录到日志

  6. logfile /var/log/redis/redis.log
    配置log文件地址,默认值为stdout。若后台模式会输出到/dev/null。

  7. databases 16
    可用数据库数,默认值为16,默认数据库为0,数据库范围在0~15之间切换,彼此隔离。

  8. save
    保存数据到磁盘,格式为save,指出在多长时间内,有多少次更新操作,就将数据同步到数据文件rdb。相当于条件触发抓取快照,这个可以多个条件配合。
    save 9001就表示900秒内至少有1个key被改变就保存数据到磁盘。

  9. rdbcompression yes
    存储至本地数据库时(持久化到rdb文件)是否压缩数据,默认为yes。

  10. dbfilename dump.rdb
    本地持久化数据库文件名,默认值为dump.rdb。

  11. dir ./
    工作目录,数据库镜像备份的文件放置的路径。这里的路径跟文件名要分开配置是因为redis在进行备份时,先会将当前数据库的状态写入到一个临时文件中,等备份完成时,再把该临时文件替换为上面所指定的文件。 而这里的临时文件和上面所配置的备份文件都会放在这个指定的路径当中,AOF文件也会存放在这个目录下面。 注意这里必须指定一个目录而不是文件。

  12. slaveof
    主从复制,设置该数据库为其他数据库的从数据库。设置当本机为slave服务时,设置master服务的IP地址及端口。 在redis启动时,它会自动从master进行数据同步。

  13. masterauth
    ​当master服务设置了密码保护时(用requirepass制定的密码)slave服务连接master的密码。

  14. slave-serve-stale-data yes
    当从库同主机失去连接或者复制正在进行,从机库有两种运行方式:
    如果slave-serve-stale-data设置为 yes(默认设置),从库会继续相应客户端的请求。
    如果slave-serve-stale-data是指为no,除去INFO和SLAVOF命令之外的任何请求都会返回一个错误"SYNC with master in progress"。

  15. repl-ping-slave-period 10
    从库会按照一个时间间隔向主库发送PING,可以通过repl-ping-slave-period设置这个时间间隔,默认是10秒。

  16. repl-timeout 60
    设置主库批量数据传输时间或者ping回复时间间隔,默认值是60秒,一定要确保repl-timeout大于repl-ping-slave-period。

  17. requirepass foobared
    设置客户端连接后进行任何其他指定前需要使用的密码。因为redis速度相当快,所以在一台比较好的服务器平台下, 一个外部的用户可以在一秒钟进行150K次的密码尝试,这意味着你需要指定非常强大的密码来防止暴力破解。

  18. rename​command CONFIG “”
    命令重命名,在一个共享环境下可以重命名相对危险的命令,比如把CONFIG重名为一个不容易猜测的字符:
    rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
    如果想删除一个命令,直接把它重命名为一个空字符""即可:rename-command CONFIG “”。

  19. maxclients 128
    设置同一时间最大客户端连接数,默认无限制。redis可以同时打开的客户端连接数为redis进程可以打开的最大文件描述符数。
    如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,redis会关闭新的连接并向客户端返回max number of clients reached错误信息。

  20. maxmemory
    指定redis最大内存限制。redis在启动时会把数据加载到内存中,达到最大内存后,redis会先尝试清除已到期或即将到期的key,redis同时也会移除空的list对象。当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。
    注意:redis新的vm机制,会把key存放内存,value会存放在swap区。

  21. maxmemory-policy volatile-lru
    当内存达到最大值的时候redis会选择删除哪些数据呢?有五种方式可供选择:
    1.volatile-lru代表利用LRU算法移除设置过期时间的key(LRU:最近使用LeastRecentlyUsed)
    2.allkeys-lru代表利用LRU算法移除任何key
    3.volatile-random代表移除设置过过期时间的随机key
    4.allkeys_random代表移除一个随机的key
    5. volatile-ttl代表移除即将过期的key(minor TTL)
    6. noeviction代表不移除任何key,只是返回一个写错误
    注意:对于上面的策略,如果没有合适的key可以移除,写的时候redis会返回一个错误。

  22. appendonly no
    默认情况下,redis会在后台异步的把数据库镜像备份到磁盘,但是该备份是非常耗时的,而且备份也不能很频繁。 如果发生诸如拉闸限电、拔插头等状况,那么将造成比较大范围的数据丢失,所以redis提供了另外一种更加高效的数据库备份及灾难恢复方式。
    开启append only模式之后,redis会把所接收到的每一次写操作请求都追加到appendonly. aof文件中。当redis重新启动时,会从该文件恢复出之前的状态,但是这样会造成appendonly. aof文件过大,所以redis还支持BGREWRITEAOF指令对appendonly.aof。

  23. appendfilename appendonly.aof
    AOF文件名称,默认为"appendonly.aof"。

  24. appendfsync everysec
    redis支持三种同步AOF文件的策略:
    1.no代表不进行同步,系统去操作
    2.always代表每次有写操作都进行同步
    3.everysec代表对写操作进行累积,每秒同步一次,默认是"everysec",按照速度和安全折中这是最好的

  25. slowlog-log-slower-than 10000
    记录超过特定执行时间的命令。执行时间不包括I/O计算,比如连接客户端,返回结果等。只是命令执行时间,可以通过两个参数设置slow log:一个是告诉Redis执行超过多少时间被记录的参数slowlog-log-slower-than(微妙),另一个是slow log 的长度。
    当一个新命令被记录的时候最早的命令将被从队列中移除,下面的时间以微妙微单位,因此1000000代表一分钟。注意制定一个负数将关闭慢日志,而设置为0将强制每个命令都会记录。

  26. hash-max-zipmap-entries 512 && hash-maxz-ipmap-value 64
    当hash中包含超过指定元素个数并且最大的元素没有超过临界时,hash将以一种特殊的编码方式(大大减少内存使用)来存储,这里可以设置这两个临界值。Redis Hash对应Value内部实际就是一个HashMap,实际这里会有2种不同实现。这个Hash的成员比较少时redis为了节省内存会采用类似一维数组的方式来紧凑存储,而不会采用真正的HashMap结构,对应的value redisObject的encoding为zipmap。当成员数量增大时会自动转成真正的HashMap,此时encoding为ht。

  27. hash-max-zipmap-entries 512 512
    list数据类型多少节点以下会采用去指针的紧凑存储格式。

  28. list-max-ziplist-value 64
    数据类型节点值大小小于多少字节会采用紧凑存储格式。

  29. setmaxintsetentries 512
    set数据类型内部数据如果全部是数值型,且包含多少节点以下会采用紧凑格式存储。

  30. zsetmaxziplistentries 128
    zsort数据类型多少节点以下会采用去指针的紧凑存储格式。

  31. zsetmaxziplistvalue 64
    zsort数据类型节点值大小小于多少字节会采用紧凑存储格式。

  32. activerehashing yes
    redis将在每100毫秒时使用1毫秒的CPU时间来对redis的hash表进行重新hash,可以降低内存的使用。
    当你的使用场景中,有非常严格的实时性需要,不能够接受redis时不时的对请求有2毫秒的延迟的话,把这项配置为no。如果没有这么严格的实时性要求,可以设置为yes,以便能够尽可能快的释放内存。

版权声明
本文为[流楚丶格念]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_15265965/2894330

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云