redis.conf解析
Redis的启动必须要用到配置文件!
Units 单位
容量单位不区分大小写,同时注意:k!=kb
includes 包含
可以使用 include 包含多个配置文件
network 网络
网络,表示Redis启动时开放的端口默认与本机绑定
bind 127.0.0.1
Redis指定监听端口,默认为6379
port 6379
表示服务器闲置多长时间(秒)后被关闭,如果这个这个数值为0,表示这个功能不起作用
timeout 300
是否开启保护模式,Redis默认开启,如果没有设置bind的IP地址和Redis密码,那么服务就会默认只能在本机运行
protected-mode yes
General 通用
是否以守护进程的方式运行,即后台运行,一般默认为no,需要手动改为yes否则无法后台运行
daemonize yes
如果以守护进程的方式运行,就需要指定一个pid文件,在Redis启动时创建,退出时删除
pidfile /var/run/redis_6379.pid # pid文件的保存位置
配置日志等级,日志等级的可选项如下:
- debug:打印的信息较多,在工作中主要用于开发和测试
- verbose:打印的信息仅次于debug,但是格式较为工整
- notice:Redis默认配置,在生产环境中使用
- warning:只打印一些重要信息,比如警告和错误
loglevel notice
打印的日志文件名称,如果为空,表示标准输出,在配置守护进程的模式下会将输出信息保存到/dev/null
logfile ""
数据库支持数量,16个
databases 16
SNAPSHOTTING 快照(RDB配置)
中文翻译为快照,如果在规定的时间内,数据发生了几次更新,那么就会将数据同步备份到一个文件中
Redis的持久化有两种方式,一种是RDB,一种是AOF。SNAPSHOTTING主要针对的是Redis持久化中的RDB
Redis是一个内存数据库,如果不采用持久化对数据进行保存,那么就会出现断电即失的尴尬场面
# 在900秒内,至少有一个key被修改(添加),就会进行持久化操作
save 900 1
# 在300秒内,至少有10个key被修改,就会进行持久化操作
save 300 10
# 在60秒内,至少有1万个key被修改,就会进行持久化操作
save 60 10000
top-writes-on-bgsave-error yes # 如果Redis在进行持久化的时候出现错误,是否停止写入,默认为是
rdbcompression yes # 是否在进行数据备份时压缩持久化文件,默认为是,这个操作会耗费CPU资源,可以设置为no
rdbchecksum yes # 在保存持久化文件的同时,对文件内容进行数据校验
dir ./ # 持久化文件保存的目录,默认保存在当前目录下
Security 安全
箭头处按照:requirepass 密码
的格式设置登录密码,使用指令也同样可以实现,不过需要保存指令保存配置,指令格式如下:
127.0.0.1:6379> CONFIG GET requirepass # 查看密码设置
1) "requirepass"
2) ""
127.0.0.1:6379> CONFIG SET requirepass "123456" # 设置密码为123456
OK
127.0.0.1:6379> set name "cjx"
OK
127.0.0.1:6379> get name "cjx" # 没有访问权限
Invalid argument(s)
127.0.0.1:6379> AUTH "123456" # 登录
OK
127.0.0.1:6379> get name
"cjx22"
Client 客户端
maxclients 10000 # 最大客户端数量
maxmemory <bytes> # 最大内存限制
maxmemory-policy noeviction # 内存达到限制值的处理策略
redis 中的默认的过期策略是 volatile-lru 。
设置方式
config set maxmemory-policy volatile-lru
maxmemory-policy 策略
# volatile-lru -> Evict(驱逐) using approximated LRU, only keys with an expire set.
# allkeys-lru -> Evict any key using approximated LRU.
# volatile-lfu -> Evict using approximated LFU, only keys with an expire set.
# allkeys-lfu -> Evict any key using approximated LFU.
# volatile-random -> Remove a random key having an expire set.
# allkeys-random -> Remove a random key, any key.
# volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
# noeviction -> Don't evict anything, just return an error on write operations.
**1、volatile-lru:**只对设置了过期时间的key进行LRU(默认值)
2、allkeys-lru : 删除lru算法的key
**3、volatile-random:**随机删除即将过期key
**4、allkeys-random:**随机删除
5、volatile-ttl : 删除最近即将过期的
6、noeviction : 永不过期,返回错误
AOF配置