首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【细节】redis 参数配置

redis 参数配置

上章我们说了redis 的安装配置方法,基本上我们也已经完成,现在我们先去了解一下参数配置文件redis.conf;

我们直接查看那个文件的话他会根据每个参数有对应的解释和设定,这些设定也可以在redis-cli 当中进行查看。

使用的命令:config get *

*表示的是通配,将数据库当中所有的参数文件都显示出来,我们发现这个显示的方法是一个参数名+一个参数值。是对应的关系。

也可以单独指定某个参数:

config get timeout

想要在线的修改这个参数的值的话,config set config_name new_configure_value

config set timeout 1

这些参数也就决定了redis的一些特点性质,我们有你要对一写参数有一些了解:

1.daemonize no

redis的默认启动方法不是以守护进程的方法启动的,这个参数控制了是否使用守护进程启动。开启守护进程和没有开启守护进程的区别是:当开启了守护进程的时候,redis会一直运行,除非手动kill了这个进程。如果没有开启守护进程,并且开启redis-server的时候没有使用后台开启,那么这个连接的session断掉了,redisserver的进程也会跟着断掉。

使用守护进程开启的显示如下:

2.pidfile ''

当redis以守护进程的方式进行运行的时候,redis会把自己的pid写到一个pid文件当中。而这个文件的路径地址就是由参数pidfile去指定的。

3.port 6379

redis的默认监听号,这个端口号是对应手机9键当中MERZ的号码,是为了致敬意大利女歌手Alessia Merz,简直就是冷知识,一般情况下为了安全考虑,还是要将这个端口号改一下。

4.bind

绑定主机的地址。--在如果想要远程连接redis数据库,需要将这个参数注释掉。

5.timeout

客户端的连接在多少秒后直接被踢出,这个连接是指空闲的没有操作的连接。

6.loglevel verbose

这个参数限定的是redis产生日志的格式,redis提供了四种日志的格式:verbose,debug,notice,warning。

7.logfile stdout

日志的记录方式,默认情况下是标准输出,如果配置redis为守护进程方式运行,而这里又配置成日志记录方式为标准输出,日志会发送给/dev/null下。

上面两个参数的设置所记录的参数就是我们普通启动redis-server所显示的相同。

8.databases

设置数据库的数量,默认只有一个数据库,可以使用命令select dbid指定client连接那个数据库。

9.save

持久化的规律,在多久的时间有多少次更改

redis提供了三种条件:

save 900 1 900s内有一次更改

save 300 10 300s内有10次更改

save 60 10000 60s内有10000个更改。

这种持久化是快照式的持久化,redis有两种持久化的形式,一种是RDB快照式的,一种是AOF形式的,这个参数限制的就是快照式的方式。

当然这种持久化的是可以手动触发的:

bgsave 手动异步保存数据到磁盘上

lastesave 返回最近一次落盘的时间戳

shutdown的时候有shutdown save可以落盘。

10.rdbcompression

指定落盘的时候数据是否会压缩。默认的是yes,redis采用的压缩方法是LZF,采用压缩的话会导致cpu的时间上升,如果关闭的话导致数据文件的大小会上升。

11.dbfilename dump.rdb

这是数据库本地文件的命名规则

12.dir

只是数据库本地文件的存放路径

13.maxclients 128

设置同一时间做大客户端连接的数量,默认无限制,如果超出了限制的连接数,那么会关闭i新连接的客户端,并且抛出一个报错为max number of clients reached 的信息。

14.maxmemery bytes

指定redis最大内存的限制,redis在启动的时候会把数据加载到内存当中,达到最大的时候,redis会清除到期的key,如果依然内存不足,则不允许写操作,但是保持读操作。如果使用vm(虚拟内存)的话,会将key放在内存里,value会放在swap里面。

15.applendonly no

指定是否在每次更新操作后进行日志记录,redis在默认情况下是异步的方式记录到磁盘上的,也就是遵循save参数的标准,这个参数如果设置为no,则服务掉了或者是断电的话会导致缓存在内存当中的数据丢失。

这个就是redis的第二种持久化方法:

AOF持久化记录服务器执行所有的写操作命令,并且在服务器启动的时候,通过重新执行这些命令来还原数据集。

16.appendfilename apendonly.aof

日志的命名规则

17.appendfsdync everysec

指定更新日志的条件,一共有3个选项:

no:在os进行同步的时候,redis也跟着同步(快)。

always:每次更新的之后手动调用fsync()刷新落到磁盘(慢,安全)。

everysec:每秒钟同步一次(折中)

18.protected-mode yes

这个参数是开启保护模式的参数,在redis数据库开启的时候不能修改,必须要关掉数据库才能修改这个参数。

在开启远程连接的时候,这个参数一定要设置成no,否则会提示denied redis is running in protected-mode ……。连接失败,一定要注意,想要开启远程连接的模式一定要将bind参数一并都关掉。

之后这些参数是集群架构会使用到的。

1.slaveof

设置slave的服务的时候,这里需要配置master的ip和端口,在启动redis的时候,就会自动从master及逆行数据同步。

2.masterauth

在配置集群架构时,如果master端设置了连接的密码,那么slave向master进行配置的时候需要设置这个密码。

3.requirepass foobared

设置redis连接密码之后,客户端在连接redis的时候通过auth password 提供密码,默认关闭。

requirepass foobared

以下参数是启用了虚拟内存后用到的

1.vm-enabled

指定是否使用虚拟内存,虚拟内存的情况下数据分页存放,由redis将访问量比较少的页置换到swap分区,经常访问的页将自动缓存到内存。

2.vm-swap-file

虚拟内存将文件路径,默认的值是/tmp/redis.swap,这个文件不是共享的,每个redis实例都有单独的一个文件。

3.vm-max-memory 0

将所有大于vm-max-memory的数据都存到虚拟内存当中。不论这个值设置的有多小,所有的索引都是存在内存当中的,其实redis的索引就是key,就是说vm-max-memory设置为0,数据也都永远落在盘上。

4.vm-page-size 32

redis swap文件当中有很多的page,一个对象可以保存在多个page上,但是一个page不能被多个对象共享,vm-page-size是要根据存储的大小设定,如果存储很多的小对象page的大小设置为32bytes,或者64bytes。如果存储很大的对象的对象,则使用更大的page。如果不确定,使用默认值即可。

5.vm-page

设置swap文件当中的page的数量,在磁盘上的每8个pages回消耗1bytes内存。

6.vm-max-threads

设置访问swap文件的线程数,最好不要超过cpu的核数,如果这个值是0,那么所有对swap文件的操作都是串行的。可能会有大量的延迟。

THAT'S ALL

BY CUI PEACE!!!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180814G18UCR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券