**网络配置:** ```php bind 127.0.0.1 # 绑定的ip protected-mode yes # 保护模式 port 6379 # 默认端口 ``` ------------ **SECURITY 安全:** 设置redis连接密码: ```php requirepass 123456 ``` ------------ **性能配置:** ```php maxclients 10000 # 设置能连上redis的最大客户端连接数量 maxmemory <bytes> # redis配置的最大内存容量 maxmemory-policy noeviction ``` **maxmemory-policy说明: 内存达到上限的处理策略** - volatile-lru:利用LRU算法移除设置过过期时间的key。 - volatile-random:随机移除设置过过期时间的key。 - volatile-ttl:移除即将过期的key,根据最近过期时间来删除(辅以TTL) - allkeys-lru:利用LRU算法移除任何key。 - allkeys-random:随机移除任何key。 - noeviction:不移除任何key,只是返回一个写错误。 ------------ **GENERAL 通用:** ```asp daemonize yes # 默认情况下,Redis不作为守护进程运行。需要开启的话,改为 yes(开启就以后台的方式允许) ``` ```php supervised no # 可通过upstart和systemd管理Redis守护进程 pidfile /var/run/redis_6379.pid # 以后台进程方式运行redis,则需要指定pid 文件 loglevel notice # 日志级别。可选项有: # debug(记录大量日志信息,适用于开发、测试阶段); # verbose(较多日志信息); # notice(适量日志信息,使用于生产环境); # warning(仅有部分重要、关键信息才会被记录)。 logfile "" # 日志文件的位置,当指定为空字符串时,为标准输出 databases 16 # 设置数据库的数目。默认的数据库是DB 0 ``` ------------ **Redis的两种持久化方式:RDB与AOF** **1.SNAPSHOPTING 快照(RDB)** 在规定的时间内,有多少个key值变化,才会持久化到文件 .rdb文件或者.aof文件! redis是内存数据库,如果没有持久化,那么数据断电即失,所以需要持久化的机制! ```php # 900秒(15分钟)内至少1个key值改变(则进行数据库保存--持久化) save 900 1 # 300秒(5分钟)内至少10个key值改变(则进行数据库保存--持久化) save 300 10 # 60秒(1分钟)内至少10000个key值改变(则进行数据库保存--持久化) save 60 10000 stop-writes-on-bgsave-error yes # 持久化出现错误后,是否依然进行继续进行工作 rdbcompression yes # 是否压缩rdb文件 yes:压缩,但是需要一些cpu的消耗。no:不压缩,需要更多的磁盘空间 rdbchecksum yes # 保存rdb文件的时候,是否进行错误的rdb文件检查校验,更有利于文件的容错性,但是在保存rdb文件的时候,会有大概10%的性能损耗 dbfilename dump.rdb # dbfilenamerdb文件名称 dir ./ # dir 数据目录,数据库的写入会在这个目录。rdb、aof文件也会写在这个目录 ``` **2.append only模式(AOF)** appendonly no # 是否以append only模式作为持久化方式,默认使用的是rdb方式持久化,这种方式在许多应用中已经足够用了 ```php appendfilename "appendonly.aof" # AOF 持久化文件名称 appendfsync everysec # appendfsync aof持久化策略的配置 # no表示不执行fsync,由操作系统保证数据同步到磁盘,速度最快。 # always表示每次写入都执行fsync,以保证数据同步到磁盘。 # everysec表示每秒执行一次fsync,可能会导致丢失这1秒的数据。 ```