参数名称 | 描述 |
---|---|
daemonize | 默认情况下,redis不是在后台运行的, 如果需要在后台运行,把该项的值设置为yes |
pidfile | 当redis在后台运行的时候, redis 默认会把pid文件放在/var/run/redis.pid, 可以配置到其他地址, 当运行多个redis服务时, 需要指定不同的pid文件和端口 |
bind | 指定redis只接收来自于该IP的请求, 如果不设置, 那么将处理所有请求, 在生产环境中推荐进行配置 |
port | 监听端口, 默认6379 |
timeout | 设置客户端连接时的超时时间, 单位为秒. 当客户端在这段时间内没有发出任何指令, 那么关闭该连接 |
loglevel | log 等级分为四级, debug, verbose, notice 和 warning. 生产环境一般配置为notice |
logfile | 配置log文件地址, 默认使用标准输出, 即打印在终端的命令窗口上 |
databases | 设置数据库的个数, 可以使用 select 命令来切换数据库. 默认使用0号数据库 |
save | 设置redis 进行数据库镜像的频率. if (在60秒之内有10000个key是发生变化时) { 进行镜像备份}else if (在300秒之内有10个keys发生了变化) { 进行镜像备份}else if (在900秒之内有1个keys发生了变化) { 进行镜像备份} |
rdbcompression | 在进行镜像备份时, 是否进行压缩 |
dbfilename | 镜像备份的文件名 |
dir | 数据库镜像备份的文件放置的路径, 这里的路径跟文件名要分开配置是因为redis在进行镜像备份时, 会先将当前数据库的状态写入到一个临时文件中, 等备份完成时,写入给文件 |
slaveof | 设置该数据库为其他数据库的从数据库 |
masterauth | 当数据库连接需要密码验证时, 在这里指定 |
requirepass | 设置客户端连接后进行任何其他指定前需要使用的密码. (因为redis的速度比较快, 所以在一台比较好的服务器下, 一个外部的用户可以在一秒内进行150K 次的密码尝试, 所以, |
maxclients | 限制同时连接的客户数量. 当连接数超过这个值的时候, redis将不再接收其他连接请求, 客户端尝试连接时将收到error消息 |
maxmemory | 设置redis 能够使用的最大内存. 当内存满了的时候, 如果还接收到set命令, redis将先尝试剔除设置过expire 信息的 key, 而不管该key 的过期时间有没有到来. 在删除时, 将按照过期时间进行删除, 最早将要被过期的key 将会最先被删除. 如果有 expire 信息的key 都删除光了, 那么将返回错误. 这样, redis 将不再接收set 请求, 只接收get请求. maxmemory 的设置比较适合于把redis当作 缓存来使用的场景. |
appendonly | 默认情况下, redis会在后台异步的把数据库镜像备份到磁盘, 但是该备份比较耗时, 而且备份不会特别及时, 如果发生断电的情况, 会造成比较大范围的数据丢失. 所以redis 提供了另外一种更加高效的数据库备份和灾难恢复方式. 开启appendonly 模式之后, redis 会把接收到的每一次写操作请求都追加到 appendonly.aof 文件中, 当redis 重新启动的适合, 会从该文件恢复出之前的状态. 但是这样会造成 appendonly.aof 文件过大, 所以redis 还支持了 BGREWRITEAOF指令, 对appendonly.aof 进行重新整理. 所以可以在服务器不繁忙的阶段, 定时将这个文件进行重写. |
appendfsync | 设置对appendonly.aof 文件进行同步的频率. always 表示每次有写操作都进行同步, everysec表示对写操作进行积累, 每秒同步一次. |
vm-enabled | 是否开启虚拟内存支持. 因为redis 是一个内存数据库, 而且当内存满的时候, 无法接收新的写入请求. 所以在redis 2.0 中, 提供的虚拟内存支持. 但是, redis中所有的key 都会放在内存中, 当内存不够的时候, 只会把 value 值放入交换区. 这样能保证性能收到的影响最小, 同事, vm-max-memory的值设置的大小要适当 |
vm-swap-file | 设置虚拟内存的交换文件路径 |
vm-max-memory | 设置开启虚拟内存之后, redis 将使用的最大物理内存大小, 默认为0, redis 将把他所有的能放到交换文件的都放到交换文件中, 以尽量减少使用物理内存. 该值尽量不要使用默认值 |
vm-page-size | 设置虚拟内存的页大小, 如果value 通常比较大, 比如需要存长字符串, 文章等内容, 就需要设置大一些 |
vm-pages | 设置交换文件的总的page的数量, 需要注意, page table 的信息会放在物理内存中, 每8个page 会占用 RAM的一个byte. 总的虚拟内存大小 = vm-page-size * vm-pages |
vm-max-threads | 设置VM IO同时使用的线程数量, 因为在进行内存交换的时候, 对数据有编码和解码的过工程, 所以尽管IO设备在硬件上不能支持很多的并发读写, 但是如果value值通常比较大, 还是能通过将该值设置的比较大来提升性能 |
glueoutputbuf | 把小的输出缓存放在一起, 以便能过够在一个TCP packet中为客户端发送多个响应, 一般设置为yes |
hash-maxzipmap-entries | 在redis 2.0 中 引入了hash 数据结构. 当hash中包含超过指定元素个数并且最大的元素没有超过临界的时候, hash以一种特殊的编码方式来存储, 这将大大减少内存使用, 这里设置这两个临界值 |
activerehashing | 开启之后, redis 将在每100ms 时使用1ms的cpu时间来对redis的hash表进行重新hash, 可以降低内存的使用. 如果有非常严格的实时性要求, 不能接收redis 对请求有2ms的延迟, 设置为no, 如果没有这么严格的实时性要求, 建议设置为yes, 可以减少对内存的占用 |
Redis配置
最新推荐文章于 2022-10-16 14:27:55 发布