zoukankan      html  css  js  c++  java
  • 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服务即可。

    @天才卧龙的博客

  • 相关阅读:
    mysql分页查询优化
    java反射及Method的Invoke方法(转载)
    java需会(转载)
    Java注解(Annotation)原理详解
    深入分析JDK动态代理
    Java并发编程:volatile关键字解析
    安装hadoop
    linux 配置ssh免密登录
    安装Centos 7 并且配置远程登录
    MAC安装VMware fusion
  • 原文地址:https://www.cnblogs.com/chenwolong/p/redisconf.html
Copyright © 2011-2022 走看看