redis配置文件中存储单位说明
1k 等价于 1000bytes
1kb 等价于 1024bytes
1m 等价于 1000000bytes
1mb 等价于 1024*1024bytes
同理...
redis对大小写不敏感(insensitive),1GB 1Gb 1gB表示同一个意思
redis常用配置说明
# 引入其他配置文件,可以在同一主机上多个redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件
include /path/to/local.conf
# 以守护线程的方式启动redis
daemonize yes
# 进程管道ID文件
pidfile /var/run/redis.pid
# 绑定端口
port 6379
# tcp链接队列
tcp-backlog 511
# 当客户端闲置多长时间后关闭链接,设置为0表示关闭本功能
timeout 0
# 每隔一次设置的时间,向客户端发送一个TCP包用于检测客户端是否保持链接的畅通,设置为0时表示关闭本功能
tcp-keepalive 0
# 日志级别,redis包含以下日志级别
# debug
# verbosee,类似于info
# notice,可用于生产 环境
# warning,类似于error
loglevel notice
# 日志记录方式,默认为标准输出,如果配置redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null
logfile stdout
# 系统日志开关
syslog-enabled yes
# 指定syslog的标示符
syslog-ident redis
# 指定syslog 设备(facility), 必须是USER或者LOCAL0到LOCAL7
syslog-facility local0
# 数据库数量
databases 16
redis安全配置
在配置文件中设置密码
# 设置redis连接密码,如果配置了连接密码,客户端在连接redis时需要通过AUTH <password>命令提供密码,默认关闭
requiredpass foobared
在redis-cli中设置密码
# 1.进入redis-cli
redis-cli -p 6379
# 2.设置密码
CONFIG set requirepass "password"
# 3.登录
AUTH password
# 4.获取密码
config get requirepass
redis limits限制
# 最大客户端数量,设置为0时,表示不作限制。当客户端连接数到达限制时,redis会关闭新的链接并向客户端返回max number of clients reached错误信息
maxclients 128
# 最大内存大小。达到最大内存后,redis会先尝试清楚已到期或即将到期的key,当此方法处理后,仍然到达最大内存设置,将无法进行写入操作,但任然可以进行读取操作。
maxmemory <bytes>
# 设置缓存清除策略
# redis有以下六种缓存过期策略
# volatile-lru:使用LRU算法移除key,只对设置了过期时间的键生效
# allkeys-lru:使用LRU算法移除key,对所有key生效
# volatile-random: 在过期集合中移除随机的Key,只对设置了过期时间的键生效
# allkeys-random: 在过期集合中移除随机的Key,对所有key生效
# volatile-ttl: 删除剩余存活时间最短的key(即将过期的key)
# noeviction-永不过期(默认)
maxmemory-policy noeviction
# 设置样本数量
# LRU算法和TTL算法都并非是精确的运算,而是估算值,所以可以设置样本的大小
# 单设置为10时,与全量LRU算法基本一致
maxmemory-samples 5
LRU与TTL算法说明
LRU(Least Recently Used),即最近最少使用
TTL(Time To Live),剔除即将过期的
rdb(数据持久化配置)
# 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
save <seconds> <changes>
# redis默认配置文件中提供三个条件
save 900 1
save 300 10
save 60 10000
分别表示900秒(15分钟)内有一个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
# 是否将数据文件压缩,默认为yes,redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项。
rdbcompression yes
# 指定数据文件名,默认值为dump.rdb
dbfilename dump.rdb
# 指定数据文件的存放目录
dir ./
# 当出现异常时,停止写入数据文件
stop-writes-on-bgsave-error yes
# 存储快照后,开启CRC64算法来进行数据校验,这样做会增加大约10%的性能消耗
rdbchecksum yes
aof(数据持久化配置)
# 指定是否每次更新操作后进行日志记录,redis在默认情况下是异步把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内数据丢失。
appendonly no
# 指定更新日志文件名,默认为appendonly.aof
appendfilename appendonly.aof
# 指定更新日志条件,共有3个可选值
# no: 表示等操作系统进行数据缓存同步到磁盘
# always: 表示每次更新操作后手动调用fsync()将数据写到磁盘(资源占用高,数据安全)
# everysec: 表示每秒同步一次(折中,默认值)
appendfsync everysec
redis主从设置
# 当本机为从机时,设置master服务的IP地址及端口,在redis启动时,它会自动从master进行数据同步
slaveof <masterip> <masterport>
# 当master服务设置了密码保护时,slav服务连接master的密码
masterauth <master-password>
redis虚拟内存设置
# 指定是否启用虚拟内存机制,默认为no。VM机制将数据分页存放,由redis将访问量较少的页,既冷数据swap到磁盘上,访问多的页面由磁盘自动换出到内存中
vm-enabled no
# 虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个redis实例共享
vm-swap-file /tmp/redis.swap
# 将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储(redis的索引数据就是Key),也就是说,当vm-max-memory设置为0时,所有value都存在于磁盘上。
vm-max-memory 0
# redis swap文件分成了很多的page,一个对象可以保存在多个page上,但一个page上不能被多个对象共享,vm-page-size是要根据存储的数据大小来设定的,如果存储很多小对象,Page大小最好设置为32或64bytes;如果存储大对象,则可使用更大的page
vm-page-size 32
# 设置swap文件中page数量,由于页表(一种表示页面空闲或使用的bitmap)是放在内存中,在磁盘上没8个pages将消耗1byte的内存
vm-pages 134217728
# 设置访问swap文件的线程数,最好不要超过机器的核数,如果设置为0,那么对所有swap文件的操作都是串行的,可能会造成较长时间的延迟。默认值为4
vm-max-threads 4
网友评论