1.redis 的配置文件单位比较有意思,对1k 和1kb 这样的单位做了明确的区分,不过感觉意义不是很大。
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
而且,单位不区分大小写,1M = 1m
2.daemonize no
默认下,redis启动不以守护进程的方式启动,生产环境下建议将配置改为yes
3.pidfile /var/run/redis.pid,pid文件,没啥好说的
4.port 6379,配置redis端口,默认6379。可以将port配置为0,此时不监听tcp协议,有些怪怪的。
5.bind 127.0.0.1,绑定ip。默认绑定所有本机ip,一般用在服务器多ip下,可以只监听内网服务器ip,保证服务安全。
6.unixsocket /tmp/redis.sock。sock文件
7.timeout 300。客户端超时时间,单位秒
8.loglevel verbose
log级别,支持四个级别,debug,notice,verbose,warning
9.logfile log文件路径
logfile stdout,log输出到标准设备,logs不写文件,输出到空设备,/deb/null
10.SNAPSHOTTING 快照,持久化相关
save <seconds> <changes>
save 900 1
保存快照的频率,表示:在多长时间内执行一定数量的写操作时,保存快照的频率,可以设置多个条件。如果都注释掉,则不做内存数据持久化。本环境就是把redis只用作cache,不开启持久化功能。
rdbcompression:是否使用压缩
dbfilename:快照数据库名称
dir:#数据库存放路径
11. REPLICATION 主从配置(配置从服务器)
slaveof <masterip> <masterport>: 主库ip 端口
masterauth <master-password>:主库服务器口令,如果主服务器未打开requirepass,怎不需要此项
slave-serve-stale-data yes:在master服务器挂掉或者同步失败时,从服务器是否继续提供服务。
12.########## SECURITY ########安全相关
requirepass foobared:设置redis服务密码,如果开启,则客户端连接时需要 -a 指定密码,否则操作会提示无权限。
- redis> set dd dd
- (error) ERR operation not permitted
rename-command : 命令改名,相当于linux alias
可以用改功能屏蔽一些危险命令
如rename-command CONFIG “”。别名为空就可。
13.LIMITS
maxclients 128:最大连接数;0 表示不限制
maxmemory <bytes> : 最大使用内存,推荐生产环境下做相应调整,我们用的是只用来做高速缓存,限制2G。默认情况下,redis会占用可用的所有内存。
- maxmemory-policy volatile-lru: 过期策略,提供六种策略
- [b][color=red]volatile-lru:删除过期和lru 的key(默认值)[/color][/b]
- allkeys-lru : 删除lru算法的key
- volatile-random:随机删除即将过期key
- allkeys->random:随机删除(这个真傻)
- volatile-ttl : 删除即将过期的
- noeviction : 永不过期,返回错误(也比较傻)
maxmemory-samples 3: 不是很明白,说是校验 lru ttl 算法准确性的。
14.APPEND ONLY MODE
appendonly:#是否开启appendonlylog,开启的话每次写操作会记一条log。相当于mysql的binlog;不同的是,每次redis启动都会读此文件构建完整数据。即使删除rdb文件,数据也是安全的。
appendfilename appendonly.aof:日志文件的名称,默认appendonly.aof
appendfsync:异步写append file 的策略。类似mysql事物log写方式。三种
appendfsync always:同步,每次写都要flush到磁盘,安全,速度慢。
appendfsync everysec :每秒写(默认值,推荐值)同mysql
appendfsync no:交给操作系统去做flush的动作
no-appendfsync-on-rewrite no
15. VIRTUAL MEMORY ,虚拟内存设置
vm-enabled no : 虚拟内存开关
vm-swap-file /tmp/redis.swap: swap文件,不同redis swap文件不能共享。而且生产环境下,不建议放在tmp目录。
vm-max-memory 0: vm大小限制。0:不限制,建议60-80% 可用内存大小。
vm-page-size 32 : 根据缓存内容大小调整,默认32字节。
vm-pages 134217728 : page数。每 8 page,会占用1字节内存。
vm-page-size * vm-pages 等于 swap 文件大小
vm-max-threads 4 : vm 最大io线程数。注意: 0 标志禁止使用vm(开关真多)
16.ADVANCED CONFIG ,高级配置
hash-max-zipmap-entries 512
hash-max-zipmap-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
activerehashing yes