Redis常用配置redis.conf介绍,别把默认配置部署到到服务器,否则,会被领导骂的

十年河东,十年河西,莫欺少年穷

学无止境,精益求精

首先说下,我的 Redis 系列博客如下:

[置顶] 高并发时,使用Redis应注意的问题【缓存穿透、缓存击穿.、缓存雪崩】

windows环境下配置Redis主从复制-一主二仆,薪火相传、反客为主、哨兵模式

Redis 持久化技术 ,大名鼎鼎的Rdb和Aof,你会选谁呢?

简单介绍下Redis消息队列,实际生产环境中,大数据高并发时,不建议使用Redis做消息队列中间件

Redis 事务,和传统的关系型数据库ACID并不同,别搞混了

Redis常用配置redis.conf介绍,别把默认配置部署到到服务器,否则,会被领导骂的

C# Nuget程序集StackExchange.Redis操作Redis 及 Redis 视频资源 及 相关入门指令 牛逼不,全都有

Redis 的基础数据类型

Window环境下安装Redis 并 自启动Redis 及 Redis Desktop Manager

进入正文

1、Redis默认不是以守护进程的方式进行运行,可以通过修改配置,使用yes启用守护进程【守护线程,只在linux下有效】。

daemonize no 改成 daemonize yes

daemonize 设置yes或者no区别

daemonize:yes:redis采用的是单进程多线程的模式。当redis.conf中选项daemonize设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。
daemonize:no: 当daemonize选项设置成no时,当前界面将进入redis的命令行界面,exit强制退出或者关闭连接工具(putty,xshell等)都会导致redis进程退出。

2、Redis绑定的IP  及 端口号,IP默认为 127.0.0.1 ,端口号默认为:6379

如果想绑定任意Ip,请修改为:0.0.0.0

3、Redis关闭连接时长,当客户端空闲多长时间时关闭连接

timeout 0 建议改成 timeout 600  也就是说空闲十分钟时,关闭连接

4、Redis日志级别

loglevel notice

5、Redis日志记录方式,默认为标准输出,如果配置Redis为守护进程运行,而这里由配置日志记录方式为默认输出,则日志将会发送给 /dev/null

logfile "" 改成 logfile stdout

 6、指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个文件配合。

#   after 900 sec (15 min) if at least 1 key changed
#   after 300 sec (5 min) if at least 10 keys changed
#   after 60 sec if at least 10000 keys changed
#
save 900 1
save 300 10
save 60 10000

这个可以看做Redis的持久化策略,它的语法为:save seconds changes,例如:save 300 10 意思是指:300秒内有10个增删改,则会更新一次dump.rdb,因此,这个需要按需配置。

7、指定本地Redis数据存放目录

dir ./

8、Redis 设置同一时刻最大连接数,0代表无穷大,当客户端连接达到设置的上限时,Redis会关闭新的连接,并向客户端返回"max numbers of cilents reached"错误信息

maxclients 128

Redis默认为10000,为了防止有人恶意攻击服务器,建议修改。这里修改为128

9、指定Redis最大内存限制,Redis启动时,会把数据加载到内存,当内存开销达到最大内存时,Redis会尝试清除即将过期的Key【前提是你设置了内存清除策略】,当清理后,内存依旧达到最大内存时,将无法进行Redis的写入操作,读取工作仍旧正常,Redis 新的vm机制会把key放入内存,value 放入swap区。

maxmemory 4gb

关于swap区说明如下:

swap是操作系统的行为,是指当内存不足时,操作系统将内存的数据拿出一部分放入磁盘,数据从内存和磁盘换入换出的机制,涉及到磁盘的IO。一旦发生swap,内存对应的进程的性能都会受到影响,因为硬盘的访问速度远远小于内存。

redis作为内存数据库,如果redis对应的内存发生了swap,那么redis的性能会受到极大的影响。

更详细内容请参考:https://www.cnblogs.com/Brake/p/14353335.html

10. 指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大

rdbcompression yes

11、设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭

requirepass foobared

关于怎样设置密码,可参考我的博客小插曲:C# Nuget程序集StackExchange.Redis操作Redis 及 Redis 视频资源 及 相关入门指令 牛逼不,全都有

12、设置Redis的内存清空策略。redis默认为永不过期,在生产环境中,切记不要设置为永不过期,否则会被打死。

 maxmemory-policy noeviction

redis有六种内存淘汰策略

noeviction: 不删除策略, 达到最大内存限制时, 如果需要更多内存, 直接返回错误信息。 大多数写命令都会导致占用更多的内存(有极少数会例外, 如 DEL )。
allkeys-lru: 所有key通用; 优先删除最近最少使用(less recently used ,LRU) 的 key。
volatile-lru: 只限于设置了 expire 的部分; 优先删除最近最少使用(less recently used ,LRU) 的 key。
allkeys-random: 所有key通用; 随机删除一部分 key。
volatile-random: 只限于设置了 expire 的部分; 随机删除一部分 key。
volatile-ttl: 只限于设置了 expire 的部分; 优先删除剩余时间(time to live,TTL) 短的key。

因此,你需要在这六种内选择一种,我选的是volatile-lru

以上便是Redis常用的配置,当然,还有很多配置我没有写出来,将来会以专题的模式进行,更多关于Redis的配置,请大家自行搜索。

最后贴上我的修改config的命令,如下:

C:Userschenwolong>redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> config set maxmemory-policy volatile-lru
OK
127.0.0.1:6379> config get maxmemory-policy
1) "maxmemory-policy"
2) "volatile-lru"
127.0.0.1:6379> config set maxmemory 4GB
OK
127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "4294967296"
127.0.0.1:6379> config set maxclients 128
OK
127.0.0.1:6379> config get maxclients
1) "maxclients"
2) "128"127.0.0.1:6379> config set timeout 600
OK
127.0.0.1:6379> config get timeout
1) "timeout"
2) "600"
127.0.0.1:6379> config set loglevel notice
OK
127.0.0.1:6379> config get loglevel
1) "loglevel"
2) "notice"
127.0.0.1:6379>

通过命令修改完成后,重启Redis服务即可。

@天才卧龙的博客

原文地址:https://www.cnblogs.com/chenwolong/p/redisconf.html