redis.conf解析

Redis的启动必须要用到配置文件!

Units 单位

容量单位不区分大小写,同时注意:k!=kb

redis如何修改key redis修改maxmemory_nosql

includes 包含

可以使用 include 包含多个配置文件


redis如何修改key redis修改maxmemory_Redis_02

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 安全

redis如何修改key redis修改maxmemory_redis_03

箭头处按照: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配置

redis如何修改key redis修改maxmemory_nosql_04

redis如何修改key redis修改maxmemory_redis如何修改key_05