1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
| # General 通用常见标准化配置 1.Redis默认不是以守护进程的方式运行,可以通过修改配置项,使用yes启用守护进程 daemonize no -> yes
2.当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件, 可以通过pidfile制定 pidfile /var/run/redis.pid
3.指定日志级别,Redis总共支持四个级别 debug、verbose、notice、warning, 默认为notice debug建议开发阶段用notice生产环境用 真的出故障就用warning只打出故障日志 loglevel notice
4.日志的记录方式,默认为标准输出。 如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出, 则日志会发送给/dev/null logfile stdout
5.如果希望日志打印到 syslog 中,也很容易,通过 syslog-enabled 来控制。 syslog-enabled no
6.另外,syslog-ident 还可以指定syslog 里的日志标志,比如: syslog-ident Redis
7.而且还支持指定 syslog 设备,值可以是 USER 或 LOCAL0-LOCAL7 。 具体可以参考 syslog 服务本身的用法。 syslog-facility local0
8.对于 Redis 来说,可以设置其数据库的总数量, 假如希望一个 Redis 包含16个数据库,那么设置如下: databases 16
# NETWORK 1.指定Redis监听端口,默认端口为6379, 作者在博客中提到为什么用6379. 因为6379代表MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。 port 6379
2.绑定的主机地址 bind 127.0.0.1
3.当客户端闲置太长时间后关闭链接,如果指定为0,则表示关闭该功能 (就像qq,30分钟没人给你发消息,你也没发消息,就终端连接减轻服务器负担) timeout 300
4.tcp-backlog 511(默认511) backlog其实是一个连接队列, backlog队列总和=未完成三次握手队列+已经完成三次握手队列 在高并发的情况下,你需要一个高的backlog来避免慢客户端连接的问题, 注意linux内核会将这个值减小到/proc/sys/net/core/somaxconn的值 所以需要确认增大somaxconn和tcp_max_syn_backlog两个值来达到想要的效果。
5.tcp-keepalive TCP连接保活策略,可以通过 tcp-keepalive 配置项来进行设置,单位为秒, 假如设置为60秒,则 server 端会每60秒向连接空闲的客户端发起一次 ACK 请求, 以检查客户端是否已经挂掉,对于无响应的客户端则会关闭其连接。 所以关闭一个连接最长需要120秒的时间。如果设置为0,则不会进行保活检测。 tcp-keepalive 0
# SNAPSHTTING快照 备份 1.save save + second + changes redis.conf的SNAPSHOTTING 出发条件 after 900 seconds if at least 1 key changed after 300 seconds if at least 10 keys changed after 60 seconds if at least 10000 keys changed save 900 1 save 300 10 save 60 10000 2.如果想禁用(save指令)(禁用RDB持久化策略),把三个默认删除, 不要设置任何save指令或者给save传一个空字符串参数save “” 3.你也可以在set key之后马上save set key save(手动挡) 4.stop-writes-on-bgsave-error 默认yes,出错了就刹车。 5.rdbcompression yes 是否启动压缩算法,LZF(如果你要节约cpu和内存耗损)则关闭,默认都用出厂设置。 6.rdbchecksum 在存储快照后,还可以让redis使用CRC64算法来进行数据校验, 但这样会增加10%的性能消耗。继续用yes(mysql的checksum~)
7.dbfilename 叫dump.rdb 8.dir config get dir可以获得,在哪里开启的该进程
# REPLICATION复制
# security安全 前提是认为内存缓存服务架构在一个安全加固环境里面 所以出厂服务是不用输入密码 config requirepass “123456” 这样每次都要输入密码才能获取值。
# limits回收机制 1.maxclients 10000 默认10000个人同时连接 2.maxmemory 3.maxmemory-policy当到达最大内存,你如何选择删除 (考过,它的缓存过期配置如何理解配置) 默认永不过期noeviction 对于内存移除规则来说, Redis 提供了多达6种的移除规则。他们是: (1)volatile-lru:使用 LRU 算法移除过期集合中的 key 只对设置了过期时间的key (2)allkeys-lru:使用 LRU 算法移除 key(所有) (3)volatile-random:在过期集合中移除随机的 key (4)allkeys-random:移除随机的 key (5)volatile-ttl:移除那些 TTL 值最小的 key ,即那些最近要过期的 key (6)noeviction:不进行移除。针对写操作,只是返回错误信息 LRU:LAST RECENT USE最近最少使用 4.maxmemory-sample LRU算法和最小TTL算法都并非是精确的算法,而是估算值。 所以可以设置样本的大小。假如Redis默认会检查三个key并选择其中LRU的那个, 那么可以改变这个key样本的数量。默认5个,3个精确度没那么高,但快。 maxmemory-samples 3
|