redis配置方式如何实现?有哪些常见参数?

XIAO 2020-04-16 13:01:23 java常见问答 3506

其实有关注java软件开发方面信息的朋友可能会有了解,近段时间比较火的非关系型数据库——redis,下面就跟小编一起来看看如何实现redis的配置吧,了解一下redis会涉及到哪些常见的参数呢?

#redis.conf
# Redis configuration file example.
# ./redis-server /path/to/redis.conf
# INCLUDES
#这在你有标准配置模板但是每个redis服务器又需要个性设置的时候很有用。
# include /path/to/local.conf
# include /path/to/other.conf
# GENERAL #
#是否在后台执行,yes:后台运行;
no:不是后台运行(老版本默认)
daemonize yes
#是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后redis
#只会本地进行访问,拒绝外部访问。要是开启了密码和bind,可以开启。否则最好关闭,#设置为no。
protected-mode yes
#redis的进程文件
pidfile /var/run/redis/redis-server.pid
#redis监听的端口号。
port 6379
#此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度, 当然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linux的默认参数值是128。当系统并发量大并且客户端速度缓慢的时候,可以将这二个参数一起参考设定。该内核参数默认值一般是128,对于负载很大的服务程序来说大大的不够。一般会将它修改为2048或者更大。在/etc/sysctl.conf中添加:net.core.somaxconn = 2048,然后在终端中执行sysctl -p。
tcp-backlog 511
#指定 redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求
bind 127.0.0.1
#配置unix socket来让redis支持监听本地连接。
# unixsocket /var/run/redis/redis.sock
#配置unix socket使用文件的权限
# unixsocketperm 700
#此参数为设置客户端空闲超过timeout,服务端会断开连接,为0则服务端不会主动断开连接,不能小于0。
timeout 0
#tcp keepalive参数。如果设置不为0,就使用配置tcp的SO_KEEPALIVE值,使用keepalive有两个好处:检测挂掉的对端。降低中间设备出问题而导致网络看似连接却已经与对端端口的问题。在Linux内核中,设置了keepalive,redis会定时给对端发送ack。检测到对端关闭需要两倍的设置值。
tcp-keepalive 0
#指定了服务端日志的级别。级别包括:debug(很多信息,方便开发、测试),verbose(许多有用的信息,但是没有debug级别信息多),notice(适当的日志级别,适合生产环境),warn(只有非常重要的信息)
loglevel notice
#指定了记录日志的文件。空字符串的话,日志会打印到标准输出设备。后台运行的redis标准输出是/dev/null。
logfile /var/log/redis/redis-server.log
#是否打开记录syslog功能
# syslog-enabled no
#syslog的标识符。
# syslog-ident redis
#日志的来源、设备
# syslog-facility local0
#数据库的数量,默认使用的数据库是DB 0。可以通过”SELECT “命令选择一个db
databases 16
# SNAPSHOTTING
# 快照配置
# 注释掉“save”这一行配置项就可以让保存数据库功能失效
# 设置sedis进行数据库镜像的频率。
# 900秒(15分钟)内至少1个key值改变(则进行数据库保存--持久化)
# 300秒(5分钟)内至少10个key值改变(则进行数据库保存--持久化)
# 60秒(1分钟)内至少10000个key值改变(则进行数据库保存--持久化)
save 900 1
save 300 10
save 60 10000
#当RDB持久化出现错误后,是否依然进行继续进行工作,yes:不能进行工作,no:可以继续进行工作,可以通过info中的rdb_last_bgsave_status了解RDB持久化是否有错误
stop-writes-on-bgsave-error yes
#使用压缩rdb文件,rdb文件压缩使用LZF压缩算法,yes:压缩,但是需要一些cpu的消耗。no:不压缩,需要更多的磁盘空间
rdbcompression yes
#是否校验rdb文件。从rdb格式的第五个版本开始,在rdb文件的末尾会带上CRC64的校验和。这跟有利于文件的容错性,但是在保存rdb文件的时候,会有大概10%的性能损耗,
#所以如果你追求高性能,可以关闭该配置。
rdbchecksum yes
#rdb文件的名称
dbfilename dump.rdb
#数据目录,数据库的写入会在这个目录。rdb、aof文件也会写在这个目录
dir /var/lib/redis

redis其实支持很多的参数,但都有默认值。

daemonize:默认情况下, redis不是在后台运行的,如果需要在后台运行,把该项的值更改为yes。

pidfile:当Redis在后台运行的时候, Redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他地址。当运行多个 edis服务时,需要指定不同的pid文件和端口。

bind:指定Redis只接收来自于该IP地址的请求,如果不进行设置,那么将处理所有请求,在生产环境中最好设置该项。

port:监听端口,默认为 6379。

timeout:设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接。

loglevel:log等级分为 4 级, debug, verbose, notice, 和warning。生产环境下一般开启 notice。

logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的窗口上。

databases:设置数据库的个数,可以使用SELECT命令来切换数据库。默认使用的数据库是 0。

save:设Redis进行数据库镜像的频率。

if(在 60 秒之内有 10000 个 keys 发生变化时){

进行镜像备份

}else if(在 300 秒之内有 10 个 keys 发生了变化){

进行镜像备份

}else if(在 900 秒之内有 1 个 keys 发生了变化){

进行镜像备份

}

rdbcompression:在进行镜像备份时,是否进行压缩。

dbfilename:镜像备份文件的文件名。

dir:数据库镜像备份的文件放置的路径。这里的路径跟文件名要分开配置是因为Redis在进行备份时,先会将当前数据库的状态写入到一个临时文件中,等备份完成时,再把该该临时文件替换为上面所指定的文件,而这里的临时文件和上面所配置的备份文件都会放在这个指定的路径当中。

slaveof:设置该数据库为其他数据库的从数据库。

vw-enabled:指定redis是否启用虚拟内存机制,vw的机制是将数据进行分页,把不经常使用(即访问量较少的)的页swap到磁盘当中,把访问较多的数据,从磁盘自动转换到内存当中。

好了,以上就是有关redis配置的所有内容了,还有兴趣了解java一些知识问答,记得关注本站消息哦。