Redis 配置

Redis 配置

配置文档

参考文档: https://www.cnblogs.com/nhdlb/p/14048083.html#_label0

常规配置

  • daemonize
  • loglevel
  • logfile
  • 设定库的数量

Units 单位

Redis 配置_第1张图片

1、配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit
2、不区分大小写

#INCLUDES#

1、如图

Redis 配置_第2张图片

2、多实例的情况可以把公用的配置文件提取出来, 然后include

#NETWORK#

bind

1、如图

Redis 配置_第3张图片

  1. 默认情况bind=127.0.0.1 只能接受本机的访问请求
  2. 如果服务器是需要远程访问的,需要将其注释掉
  3. 启动redis , 查看当前允许连接的情况

在这里插入图片描述

  1. 实验: 注销bind , 重新启动redis, 再查看当前允许连接的情况

protected-mode

1、如图

Redis 配置_第4张图片

  1. 默认是保护模式
  2. 如果服务器是需要远程访问的, 需要将yes 设置为no

Redis 配置_第5张图片

port

Redis 配置_第6张图片

Redis 服务默认端口6379

timeout

在这里插入图片描述

一个空闲的客户端维持多少秒会关闭,0 表示关闭该功能, 即永不超时

tcp-keepalive

在这里插入图片描述

tcp-keepalive 是对访问客户端的一种心跳检测,每隔n 秒检测一次, 单位为秒

如果设置为0,则不会进行Keepalive 检测,建议设置成60

为什么需要心跳检测机制

  1. TCP 协议中有长连接和短连接之分。短连接环境下,数据交互完毕后,主动释放连接;

  2. 长连接的环境下,进行一次数据交互后,很长一段时间内无数据交互时,客户端可能意外断开,这些TCP 连接并未来得及正常释放,那么,连接的另一方并不知道对端的情况,它会一直维护这个连接,长时间的积累会导致非常多的半打开连接,造成端系统资源的消耗和浪费,且有可能导致在一个无效的数据链路层面发送业务数据,结果就是发送失败。所以服务器端要做到快速感知失败,减少无效链接操作,这就有了TCP 的Keepalive(保活探测)机制

#GENERAL 通用#

daemonize

Redis 配置_第7张图片
解释
守护进程daemon,是指没有控制终端,运行在后台的进程,通常伴随着系统启动产生,系统关机结束。可以使用命令ps -axj查看系统的守护进程
设置yes是开启 no就是关闭

一句话
是否为后台进程,设置为yes
设置为yes 后, 表示守护进程, 后台启动

pidfile

在这里插入图片描述

存放pid 文件的位置,每个实例会产生一个不同的pid 文件, 记录redis 的进程号
Redis 配置_第8张图片
在这里插入图片描述

在这里插入图片描述

loglevel

Redis 配置_第9张图片

redis 日志分为4 个级别,默认的设置为notice, 开发测试阶段可以用debug(日志内容较多,不建议生产环境使用),生产模式一般选用notice

redis 日志分为4 个级别说明

  1. debug:会打印出很多信息,适用于开发和测试阶段;
  2. verbose(冗长的):包含很多不太有用的信息,但比debug 要清爽一些;
  3. notice:适用于生产模式;
  4. warning : 警告信息;

logfile

在这里插入图片描述

1、logfile “” 就是说,默认为控制台打印,并没有日志文件生成

2、可以为redis.conf 的logfile 指定配置项

Redis 配置_第10张图片

提示: 如果提示日志文件redis.log 不存在,创建一个该文件即可

Redis 配置_第11张图片

databases 16

Redis 配置_第12张图片

设定库的数量默认16,默认数据库为0 号

可以使用SELECT 命令在连接上指定数据库id

Redis 配置_第13张图片

#SECURITY 安全#

设置密码

redis.conf 中设置密码
在这里插入图片描述

永久设置, 需要在配置文件中进行设置 注意**#**是没有了

在这里插入图片描述

----重启Redis-----

Redis 配置_第14张图片

测试完毕后, 如果不需要设置密码 在redis.conf 关闭密码, 重启Redis

在这里插入图片描述

Redis 配置_第15张图片

Redis 配置_第16张图片

命令行设置密码

注意第4步和8步是输入自己想设置的密码

Redis 配置_第17张图片

在命令中设置密码,是临时的, 重启redis 服务器,密码就还原了

永久设置,需要在配置文件中进行设置(前面已经讲过了)

#LIMITS 限制#

maxclients

Redis 配置_第18张图片

  • 设置redis 同时可以与多少个客户端进行连接。
  • 默认情况下为10000 个客户端。
  • 如果达到了此限制,redis 会拒绝新的连接请求,并且向这些连接请求方发出"max numberof clients reached"

maxmemory

● maxmemory 的说明

Redis 配置_第19张图片

1、在默认情况下, 对32 位实例会限制在3 GB, 因为32 位的机器最大只支持4GB 的内存,而系统本身就需要一定的内存资源来支持运行,所以32 位机器限制最大3 GB 的可用内存是非常合理的,这样可以避免因为内存不足而导致Redis 实例崩溃
2、在默认情况下, 对于64 位实例是没有限制
3、当用户开启了redis.conf 配置文件的maxmemory 选项,那么Redis 将限制选项的值不能小于1 MB

对maxmemory 设置的建议

1、Redis 的maxmemory 设置取决于使用情况, 有些网站只需要32MB,有些可能需要12GB。

2、maxmemory 只能根据具体的生产环境来调试,不要预设一个定值,从小到大测试,基本标准是不干扰正常程序的运行。

3、Redis 的最大使用内存跟搭配方式有关,如果只是用Redis 做纯缓存, 64-128M 对一般小型网站就足够了

4、如果使用Redis 做数据库的话,设置到物理内存的1/2 到3/4 左右都可以

5、如果使用了快照功能的话,最好设置50%以下,因为快照复制更新需要双倍内存空间,比如8g分4g以下好 因为 双倍意思是使用本身的配置的还要使用 配置外的内存 所以是双倍

6、如果没有使用快照而设置redis 缓存数据库,可以设置内存的80%左右,只要能保证Java、NGINX 等其它程序可以正常运行就行了

maxmemory-policy

Redis 配置_第20张图片

policy 一览

  1. volatile-lru:使用LRU 算法移除key,只对设置了过期时间的键;(最近最少使用)
  2. allkeys-lru:在所有集合key 中,使用LRU 算法移除key
  3. volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键
  4. allkeys-random:在所有集合key 中,移除随机的key
  5. volatile-ttl:移除那些TTL 值最小的key,即那些最近要过期的key
  6. noeviction:不进行移除。针对写操作,只是返回错误信息

maxmemory-samples

Redis 配置_第21张图片

1、设置样本数量,LRU 算法和最小TTL 算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小,redis 默认会检查这么多个key 并选择其中LRU 的那个
2、一般设置3 到7 的数字,数值越小样本越不准确,但性能消耗越小

你可能感兴趣的:(中间件,redis,java,数据库,数据结构,网络)