redis-配置文件及命令

宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述redis-配置文件及命令相关的知识,希望能为你提供帮助。
?1.配置文件?
[root@centos7_m_1908_1data]#cat /usr/local/redis/etc/redis.conf|grep-Ev"^($|#)"

bind 127.0.0.1#监听地址可以用空格隔开后,监听多个IP
protected-mode yes#redis3.2之后加入的新特性,在没有设置bind IP和密码的时候只允许
访问127.0.0.1:6379
port 6379#监听端口
tcp-backlog 511#三次握手的时候server端收到client ack确认号之后的队列值
timeout 0#客户端和Redis服务端的连接超时时间,默认是0,表示永不超时。
tcp-keepalive 300#tcp会话,保持时间
daemonize no#默认情况下redis不是作为守护进程运行的,如果你想让它在后台运行,你就把它改
成yes,当redis作为守护进程运行的时候,它会写一个pid到/var/run/redis.pid文件里面
supervised no#和操作系统相关参数,可以设置通过upstart和systemd管理Redis守护进程
,centos7以后都使用systemd
pidfile /var/run/redis_6379.pid #pid文件路径
loglevel notice#日志级别
logfile""#日志路径
databases 16#设置db库数量,默认16个库
always-show-logo yes#在启动redis时是否显示log
save900 1#在900秒内有一个键内容发生更改,就出快照机制
save300 10
save6010000
stop-writes-on-bgsave-error yes #快照出错时,是否禁止redis写入操作
rdbcompression yes#持久化到RDB文件时,是否压缩,"yes"为压缩,"no"则反之
rdbchecksum yes#是否开启RC64校验,默认是开启
dbfilenamedump.rdb#快照文件名
dir./#快照文件保存路径


#主从同步的参数
-------------------------------------------------------------------------------------
replica-serve-stale-data yes #当从库同主库失去连接或者复制正在进行,从库有两种运行方式:
#yes(默认设置)),从库会继续响应客户端的读请求。
#设置为no,除去指定的命令之外的任何请求都会返回一个错误"SYNC with master in progress"

replica-read-onlyyes#是否设置从库只读
repl-diskless-sync no#是否使用socket方式复制数据,目前redis复制提供两种方式,disk和socket,
yes为支持disk,默认为no
#如果新的slave连上来或者重连的slave无法部分同步,就会执行全量同步,master会生成rdb文件,
#1)disk是:master创建一个新的进程,把rdb文件保存到磁盘,再把磁盘上的rdb文件传递给slave
#2)socket是:master创建一个新的进程,直接把rdb文件以socket的方式发给slave
#disk方式的时候,当一个rdb保存的过程中,多个slave都能共享这个rdb文件,socket的方式就是一个个slave顺序
复制,只有在磁盘速度缓慢但是网络相对较快的情况下,才使用socket方式,否则使用默认的disk方式。

repl-diskless-sync-delay 5#diskless复制的延迟时间,设置0为关闭,一旦复制开始还没有结束之前,
master节点不会再接收新slave的复制请求,直到下一次开始 ; 即master准备好rdb文件后等待传输时间
repl-ping-slave-period 10#slave根据master指定的时间进行周期性的PING监测;默认10s
repl-timeout 60#复制链接超时时间,需要大于repl-ping-slave-period否则会经常报超时

repl-disable-tcp-nodelay no#在socket模式下,是否在slave套接字发送SYNC之后,禁用TCP_NODELAY
#如果你选择"yes",Redis将使用更少的TCP包和带宽,来向slaves发送数据。但是这将使数据传输到slave上有延迟,
Linux内核的默认配置会达到40毫秒。
#如果你选择了"no",数据传输到salve的延迟将会减少,但要使用更多的带宽

repl-backlog-size 1mb#master的写入数据缓冲区,用于记录自上一次同步后到下一次同步过程中间的写入命令
,计算公式:repl-backlog-size = 允许从节点最大中断时长*主实例offset每秒写入量,比如:master每秒最大写
入64mb,最大允许60s,那么就要设置为64mb*60=3.8G

repl-backlog-ttl 3600 #多少时间后没有slave连接到master,则backlog size 的内存将会被释放,如果值为0,
则表示永远不释放这部分内存

slave-priority 100 #slave端的优先级设置,值是一个整数,数字越小表示优先级越高,当master故障时,将会按
照优先级来选择slave进行恢复,如果值设置为0 ,则表示该slave永远不会被选择

min-slaves-to-write 0
min-slaves-max-lag 10 #设置当一个master端的可用slave少于N个,延迟时间大于M秒时,不接受写操作
master的重启会导致master_replid发生变化,slave之前的master_replid就和master不一致,从而会引发所有
slave的全量同步

replica-priority 100#当master不可用,Sentinel会根据slave的优先级选举一个master。最低的优
先级的slave,当选master。而配置成0,永远不会被选举。
requirepass foobared#设置redis连接密码
rename-command#重命名一些高危命令


-------------------------------------------------------------------------------------
maxclients 10000#最大连接客户端
maxmemory#最大内存,单位为bytes字节,8G内存的计算方式8G))*1024(MB)*1024(KB)*1024Kbyte,
需要注意的是slave的输出缓冲区是不计算在maxmemory内
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no

appendonly no#是否开启AOF日志记录,默认redis使用的是rdb方式持久化,这种方式在许多应用中
已经足够用了。但是redis如果中途宕机,会导致可能有几分钟的数据丢失,根据save策略进行持久化,
#AppendOnlyFile 是另一种持久化方式,可以提供更好的持久化特性。Redis会把每次写入的数据在接收后都写
入appendonly.aof文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。

appendfilename"appendonly.aof"#AOF文件名
appendfsync everysec#aof持久化策略的配置,no表示不执行fsync,由操作系统保证数据同步到磁盘,
#always:表示每次写入都执行fsync,以保证数据同步到磁盘,
#everysec:表示每秒执行一次fsync,可能会导致丢失这1s数据。

no-appendfsync-on-rewrite no#在aof rewrite期间是否对aof新记录的append暂缓使用文件同步策略,主要
考虑磁盘IO开支和请求阻塞时间。
#默认为no,表示"不暂缓":新的aof记录仍然会被立即同步; Linux的默认fsync策略是30秒,如果为yes可能丢失30秒
数据,但由于yes性能较好而且会避免出现阻塞,因此比较推荐

auto-aof-rewrite-percentage 100 #当Aof log增长超过指定百分比例时,重写logfile,设置为0:表示不自动
重写Aof日志,重写是为了使aof体积保持最小,而确保保存最完整的数据。
auto-aof-rewrite-min-size 64mb#触发aof rewrite的最小文件大小
aof-load-truncated yes#是否加载由于其他原因导致的末尾异常的AOF文件(主进程被kill/断电等)

aof-use-rdb-preamble yes#redis4.0新增RDB-AOF混合持久化格式,在开启了这个功能之后,AOF重写
产生的文件将同时包含RDB格式的内容和AOF格式的内容,其中RDB格式的内容用于记录已有的数据,而AOF格式的内容
则用于记录最近发生了变化的数据,这样Redis就可以同时兼有RDB持久化和AOF持久化的优点(既能够快速地生成重
写文件,也能够在出现问题时,快速地载入数据)。

lua-time-limit 5000#lua脚本的最大执行时间单位为毫秒


-------------------------------------------------------------------------------------
#集群
cluster-enabled yes#是否开启集群模式,默认是单机模式
cluster-configfilenodes6379.conf#由node节点自动生成的集群配置文件
cluster-nodetimeout 15000#集群中node节点连接超时时间
cluster-replicavalidityfactor 10#在执行故障转移的时候,可能有些节点和master断开一段时间,数据比较旧
这些节点就不适用于选举为master,超过这个时间的就不会被进行故障转移
cluster-migration-barrier 1#一个主节点拥有的,至少正常工作的从节点,即如果主节点的slave节点故障
后,会将多余的从节点分配到当前主节点成为其新的从节点。
cluster-require-full-coverage no#集群槽位覆盖,如果一个主库宕机且没有备库就会出现集群槽位不全。
#那么yes情况下,redis集群槽位验证不全,就不再对外提供服务,
#而no则可以继续使用,但是会出现查询数据查不到的情况,因为有数据丢失。


#Slowlog是Redis用来记录查询执行时间的日志系统,slowlog保存在内存里面,读写速度非常快,因此你可以放心地
使用它,不必担心因为开启slowlog而损害Redis的速度。
slowlog-log-slower-than 10000#以微秒为单位的慢日志记录,为负数会禁用慢日志,为0会记录每个命令操作。
slowlog-max-len 128#记录多少条慢日志保存在队列,超出后会删除最早的,以此滚动删除
127.0.0.1:6379> slowloglen
(integer)14
127.0.0.1:6379> slowlogget
1)1)(integer)14
2)(integer)1544690617
3)(integer)4
4)1)"slowlog"
127.0.0.1:6379> SLOWLOGreset
OK

【redis-配置文件及命令】?2.?redis命令??
[root@redis
s4 ~]# redis-cli
127.0.0.1:6379> AUTH 123456
OK

config命令用于查看当前redis配置、以及不重启更改redis配置等
#1.更改最大内存:
127.0.0.1:6379> CONFIG set maxmemory 8589934592
OK
127.0.0.1:6379> CONFIG get maxmemory
1) "maxmemory"
2) "8589934592"

#1.设置连接密码
127.0.0.1:6379> CONFIG SET requirepass 123456

#2.当前配置
127.0.0.1:6379> config get *

#3.显示当前节点redis运行状态信息
127.0.0.1:6379> info

#4.切换数据库
127.0.0.1:6379> select 1

#5.查看keys
127.0.0.1:6379> keys *

#6.手动在后台执行rdb持久化
127.0.0.1:6379> bgsave

#7.返回当前库下的所有key数量
127.0.0.1:6379> dbsize

#8.强制清空当前库中的所有key
127.0.0.1:6379> flushdb

#9.强制清空当前redis服务器所有数据库中的所有key ,即删除所有数据
127.0.0.1:6379> flushall


    推荐阅读