#说在前面
之前我们有讨论过Redis这种非关系型数据库的一些知识和部署Redis的配置,Redis是一个使用ANSI C编写的开源、支持网络、基于内存、分布式、可选持久性的键值对存储数据库。时至今日,Redis是最流行的键值对存储数据库;我之前也有写过一篇文件,主要讲述如何部署Redis,详情请见如下截图;
正是因为这样的特性,使得Redis应用范围非常广泛,就连一些在IT业界有名的厂商,都会拿Redis来使用,作为它们产品的用于配合关系型数据库做高速缓存 ,缓存高频次访问的数据,降低数据库io使用。
接下来,我们通过列举某传统厂商的云相关产品的底层操作界面,看下Redis的配置有哪些。
#Redis配置文件内容
通过登录到某传统厂商的云相关产品底层,执行ps -ef | grep -i redis 可以看到redis进程信息。
执行 sed ‘/^#/d; /^$/d’ /etc/redis/6379.conf,可以看到输出结果是罗列出了redis主配置文件中有用的配置有哪些。
接下来,我们将这些参数进行详细说明:
daemonize:设置为yes表示指定Redis以守护进程的方式启动(后台启动)。默认值为 no;
pidfile:配置PID文件路径,当redis作为守护进程运行的时候,它会把 pid 默认写到 /var/redis/run/redis_6379.pid 文件里面;
port:指定redis运行的端口,默认是6379;由于Redis是单线程模型,因此单机开多个Redis进程的时候会修改端口;
bind:绑定redis服务器网卡IP,默认为127.0.0.1,即本地回环地址;
timeout:设置客户端连接时的超时时间,单位为秒;当客户端在这段时间内没有发出任何指令,那么关闭该连接。默认值为0,表示不关闭。
tcp-keepalive :单位是秒,表示将周期性的检测客户端是否还处于健康状态,避免服务器一直阻塞,官方给出的建议值是300s,如果设置为0,则不会周期性的检测。
loglevel :定义日志级别。默认值为notice,目前配置为debug(记录大量日志信息,适用于开发、测试阶段;
logfile :配置log文件地址,默认打印在命令行终端的窗口上
databases:设置数据库的数目,默认的数据库是DB 0 ,可以在每个连接上使用select 命令选择一个不同的数据库,dbid是一个介于0到databases - 1 之间的数值。默认值是 16,即默认情况下,Redis有16个数据库。
stop-writes-on-bgsave-error :默认值为yes。当启用了RDB且最后一次后台保存数据失败,Redis是否停止接收数据。这会让用户意识到数据没有正确持久化到磁盘上;
slave-serve-stale-data:默认值为yes。当一个 slave 与 master 失去联系,或者复制正在进行的时候,slave会应答客户端的请求;
slave-read-only:配置Redis的Slave实例是否接受写操作,即Slave是否为只读Redis。默认值为yes。
requirepass:设置redis连接密码;
appendonly:默认redis使用的是rdb方式持久化存储,除此之外,AOF(Append Only File)是另一种持久化方式, 可以提供更好的持久化特性;Redis会把每次写入的数据在接收后都写入appendonly.aof文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。默认值为no。
appendfsync:aof持久化策略的配置;everysec表示每秒执行一次fsync,可能会导致丢失这1S的数据;
no-appendfsync-on-rewrite:在AOF重写或者写入rdb文件的时候,会执行大量IO,执行fsync会造成阻塞过长时间,该字段设置为默认设置为no;
auto-aof-rewrite-percentage:默认值为100,当AOF文件增长到一定大小的时候,Redis能够调用bgrewriteaof对日志文件进行重写。当前AOF文件大小是上次日志重写得到AOF文件大小的二倍(设置为100)时,自动启动新的日志重写过程。
auto-aof-rewrite-min-size:64mb。设置允许重写的最小aof文件大小,避免了达到约定百分比但尺寸仍然很小的情况还要重写;
lua-time-limit:一个lua脚本执行的最大时间,单位为ms。默认值为5000;
slowlog-log-slower-than:设置慢日志延迟时间。
说在最后
通过以上的截图和内容,详细说明了Redis主配置文件中的最主要的一些配置。
由于redis访问速度块、支持的数据类型比较丰富,所以redis很适合用来存储热点数据,另外我们也可以借助于Redis进行热点数据的排序,所以说很多的厂商 都将开源的Redis纳入到厂商自己的相关产品中;
后续我们会继续Redis相关的实践场景操作以及关于Redis的持久化存储配置以及主从集群架构的部署。