相关链接
1. redis.conf
在redis安装目录下 找到配置文件 redis.conf,修改前最好先备份一份原版配置文件(我这里的redis.conf-bak),修改后需要重启redis-server服务才能生效。
1.1 单位
redis.conf 的unit单位,对大小写不敏感
1.2 INCLUDES 包含
相当于springboot的import,include功能,可以把其他配置文件引入此配置文件
1.3 MODULES
加载.so文件,非重点
1.4 NETWORK 网络相关??
1) bind:主机 默认127.0.0.1 2) protected-mode:保护模式 默认yes 3) port:端口号 默认6379
bind 127.0.0.1 -::1
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
1.6 TLS/SSL 协议
1.7 GENERAL 通用??
1) daemonize:以守护进程的方式运行(即关闭窗口后,redis-server依然在后台运行)。默认 no,我们需要自己开启为yes。(docker要改为no,windows不支持此功能) 2) supervised:管理守护进程的。默认 no。 3) pidfile:如果以后台方式运行 ,需要指定一个pid文件。默认 /var/run/redis_6379.pid。 4) loglevel:日志级别分为4个 debug、verbose、notice、warning。默认notice。 ??debug:详细的日志信息,适用于开发、测试阶段。 ??verbose:记录较多有用信息,很像debug级别。 ??notice:重要的日志信息,适用于生产环境。默认级别 ??warning:只打印关键信息。 5) logfile:日志文件位置。默认 “”。 6) databses:数据库的数量。默认 16。 7) always-show-logo:redis-server启动时是否显示logo。默认 yes。
daemonize yes
pidfile /var/run/redis_6379.pid
loglevel notice
logfile redis.log
databases 16
always-show-logo no
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
1.8 SNAPSHOTTING 快照??
1) save:持久化(在规定的时间内,执行了多少次操作,则会持久化到文件.rdb .aof),redis是内存数据库,如果没有持久化,那么数据断电即丢失。规则解释:
save 900 1
save 300 10
save 60 10000
2) stop-writes-on-bgsave-error:持久化如果出现错误,是否还需要继续工作。默认 yes。一般情况下也都是yes。> 3) rdbcompression:是否压缩rdb持久化文件,需要消耗一些CPU资源。默认 yes。如果对资源要求较高,可以关闭此配置,用空间换时间。 4) rdbchecksum:是否校验rbd文件,开启后会自动修复错误的rdb文件。默认 yes。 5) dbfilename:持久化(rdb方式)的文件名。默认 dump.rdb。 6) dir:rdb文件的保存目录。默认 ./。
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir ./
1.9 REPLICATION 主从复制??
1) replica-serve-stale-data:是否保存数据。默认 yes。 2) replica-read-only:是否只读。默认 yes。 …
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
1.10 KYES TRACKING
1.11 SECURITY 安全??
1) requirepass:是否保存数据。默认不生效 foobared。有两种设置密码的方式: ??一是永久配置,在redis.conf文件中指定 requirepass 12345。 ??二是临时配置,在redis-cli客户端通过命令行 config set requirepass 12345。临时配置指重启redis-server服务后密码就失效了。 ??获取密码是 config get requirepass。登录验证需要输入 auth 12345。
groupiesm@GroupiesMdeMacBook-Pro src % redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> config set requirepass 12345
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "12345"
127.0.0.1:6379> quit
groupiesm@GroupiesMdeMacBook-Pro src % redis-cli
127.0.0.1:6379> config get requirepass
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 12345
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "12345"
acllog-max-len 128
1.12 CLIENTS 客户端??
1) maxclients:限制最大客户端数量。默认不生效 10000。
1.13 MEMORY MANAGEMENT 内存管理
1) maxmemory:限制Redis最大内存。默认不生效 <bytes>。 2) maxmemory-policy:内存达到上限后的处理策略。默认不生效 noeviction。 ??volatile-lru:只对设置了过期时间的key进行LRU(默认值)。 ??allkeys-lru:删除LRU算法的key。 ??volatile-lfu:只对设置了过期时间的key进行LFU。 ??allkeys-lfu :删除LFU算法的key。 ??volatile-random:随即删除一个快过期的键(首先这个键要设置过期,而且快要过期)。 ??allkeys-random:随即删除一个键。 ??volatile-ttl:使用最近的过期时间(次要TTL)删除密钥。 ??noeviction:不删除任何东西,只在写操作时返回一个错误。默认级别
1.14 LAZY FREEING
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no
1.15 THREADED I/O
oom-score-adj no
oom-score-adj-values 0 200 800
1.16 KERNEL transparent hugepage CONTROL
disable-thp yes
1.17 APPEND ONLY MODE 设置AOF??
1) appendonly:是否开启aof持久化,默认使用rdb持久化,不开启aof。在大部分情况下rdb完全够用了。默认 on。 2) appendfilename:持久化(aof方式)的文件名。默认 appendonly.aof。 3) appendfsync:是否每次都需要同步(sync)。默认everysec。 ??always:每次修改值都会执行一次 sync。 ??everysec:每秒执行一次 sync(如果这1秒内宕机了,可能会丢失这1秒的数据)。默认级别 ??no:不执行 sync,这个时候操作系统自己同步数据,速度最快。
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
1.19 LUA SCRIPTING
lua-time-limit 5000
1.20 REDIS CLUSTER
1.21 SLOW LOG
slowlog-log-slower-than 10000
slowlog-max-len 128
1.22 LATENCY MONITOR
latency-monitor-threshold 0
1.23 EVENT NOTIFICATION
notify-keyspace-events ""
1.24 GOPHER SERVER
1.25 ADVANCED CONFIG
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes
2. 常用配置
查看redis.conf文件目录:config get dir
1.4 NETWORK 网络相关?? ? 1) bind:主机 默认127.0.0.1 2) protected-mode:保护模式 默认yes 3) port:端口号 默认6379
1.7 GENERAL 通用?? ? 1) daemonize:以守护进程的方式运行(即关闭窗口后,redis-server依然在后台运行)。默认 no,我们需要自己开启为yes。(docker要改为no,windows不支持此功能) 2) supervised:管理守护进程的。默认 no。 3) pidfile:如果以后台方式运行 ,需要指定一个pid文件。默认 /var/run/redis_6379.pid。 4) loglevel:日志级别分为4个 debug、verbose、notice、warning。默认notice。 ??debug:详细的日志信息,适用于开发、测试阶段。 ??verbose:记录较多有用信息,很像debug级别。 ??notice:重要的日志信息,适用于生产环境。默认级别 ??warning:只打印关键信息。 5) logfile:日志文件位置。默认 “”。 6) databses:数据库的数量。默认 16。 7) always-show-logo:redis-server启动时是否显示logo。默认 yes。
1.8 SNAPSHOTTING 快照?? ? 1) save:持久化(在规定的时间内,执行了多少次操作,则会持久化到文件.rdb .aof),redis是内存数据库,如果没有持久化,那么数据断电即丢失。规则解释:
save 900 1
save 300 10
save 60 10000
2) stop-writes-on-bgsave-error:持久化如果出现错误,是否还需要继续工作。默认 yes。一般情况下也都是yes。> 3) rdbcompression:是否压缩rdb持久化文件,需要消耗一些CPU资源。默认 yes。如果对资源要求较高,可以关闭此配置,用空间换时间。 4) rdbchecksum:是否校验rbd文件,开启后会自动修复错误的rdb文件。默认 yes。 5) dbfilename:持久化(rdb方式)的文件名。默认 dump.rdb。 6) dir:rdb文件的保存目录。默认 ./。
1.9 REPLICATION 主从复制?? ? 1) replica-serve-stale-data:是否保存数据。默认 yes。 2) replica-read-only:是否只读。默认 yes。
1.11 SECURITY 安全?? ? 1) requirepass:是否保存数据。默认不生效 foobared。有两种设置密码的方式: ??一是永久配置,在redis.conf文件中指定 requirepass 12345。 ??二是临时配置,在redis-cli客户端通过命令行 config set requirepass 12345。临时配置指重启redis-server服务后密码就失效了。 ??获取密码是 config get requirepass。登录验证需要输入 auth 12345。
groupiesm@GroupiesMdeMacBook-Pro src % redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> config set requirepass 12345
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "12345"
127.0.0.1:6379> quit
groupiesm@GroupiesMdeMacBook-Pro src % redis-cli
127.0.0.1:6379> config get requirepass
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 12345
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "12345"
限制 ? 1.12 CLIENTS 客户端?? ?1) maxclients:限制最大客户端数量。默认不生效 10000。 ? 1.13 MEMORY MANAGEMENT 内存管理 ?1) maxmemory:限制Redis最大内存。默认不生效 <bytes>。 ?2) maxmemory-policy:内存达到上限后的处理策略。默认不生效 noeviction。 ???volatile-lru:只对设置了过期时间的key进行LRU(默认值)。 ???allkeys-lru:删除LRU算法的key。 ???volatile-lfu:只对设置了过期时间的key进行LFU。 ???allkeys-lfu :删除LFU算法的key。 ???volatile-random:随即删除一个快过期的键(首先这个键要设置过期,而且快要过期)。 ???allkeys-random:随即删除一个键。 ???volatile-ttl:使用最近的过期时间(次要TTL)删除密钥。 ???noeviction:不删除任何东西,只在写操作时返回一个错误。默认级别
1.17 APPEND ONLY MODE 设置AOF?? ? 1) appendonly:是否开启aof持久化,默认使用rdb持久化,不开启aof。在大部分情况下rdb完全够用了。默认 on。 2) appendfilename:持久化(aof方式)的文件名。默认 appendonly.aof。 3) appendfsync:是否每次都需要同步(sync)。默认everysec。 ??always:每次修改值都会执行一次 sync。 ??everysec:每秒执行一次 sync(如果这1秒内宕机了,可能会丢失这1秒的数据)。默认级别 ??no:不执行 sync,这个时候操作系统自己同步数据,速度最快。
3. mac修改配置文件不生效
先说解决方案,启动redis-server时加上参数指定redis.conf配置文件。下面是测试过程。
src/redis-server redis.conf
Step1. 首先进入redis根目录,修改配置文件(以修改端口号为例,这样最直观可以看到是否修改成功了)。
cd /Users/d/develop/redis-6.2.6
vim redis.conf
Step2. 退出先有redis服务。在客户端(redis-cli)输入shutdown
看到服务确实退出了 还可以用命令ps -ef|grep redis 检查一下。
Step3. 启动redis服务(redis-server),可以看到端口号还是6379,说明redis.conf的配置文件没有生效
Step4. 再次退出服务端。在客户端(redis-cli)输入shutdown (图略)
Step5. 重新启动服务,退到src的上级目录(redis.conf所在目录),可以看到没有启动服务的图案和提示。 但其实后台已经启动成功了。
groupiesm@GroupiesMdeMacBook-Pro src % pwd
/Users/d/develop/redis-6.2.6/src
groupiesm@GroupiesMdeMacBook-Pro src % cd ..
groupiesm@GroupiesMdeMacBook-Pro redis-6.2.6 % src/redis-server redis.conf
groupiesm@GroupiesMdeMacBook-Pro redis-6.2.6 %
Step6.可以看到有一个redis-server端口号为6389,说名配置文件起作用了 Step7.可以看到有一个redis-server端口号为6389,说名配置文件起作用了。
22/03/08
M
|