一、配置文件优化

bind 127.0.0.1  //允许连接的ip,如果就本机连接最后127.0.0.1
protected-mode yes //是否开启保护模式。默认开启,如果没有设置bind项的ip和redis密码的话,服务将只允许本地访 问
requirepass "password" //连接的密码
port 6379 //启动端口
tcp-backlog 511 //高并发环境下需要一个高backlog值来避免慢客户端连接问题
timeout 300 //客户端空闲多少秒后关闭连接(0为不关闭)
tcp-keepalive 300 //如果设置不为0,就使用配置tcp的SO_KEEPALIVE值,使用keepalive有两个好处:检测挂掉的对端。降低中间设备出问题而导致网络看似连接却已经与对端端口的问题。在Linux内核中,设置了keepalive,redis会定时给对端发送ack。检测到对端关闭需要两倍的设置值
daemonize yes //是否通过upstart或systemd管理守护进程。默认no没有服务监控
supervised no //同上,拥有监控
pidfile "/var/run/redis.pid" //pid文件
loglevel notice //日志级别,选项有debug, verbose, notice, warning
logfile "/var/log/redis.log" //日志文件
databases 16 //可用数据库数,默认值为16,默认数据库为0,数据库范围在0-(database-1)之间
##### 持久化设置######
#不写磁盘的话就把所有 "save" 设置注释掉
#通过添加一条带空字符串参数的save指令也能移除之前所有配置的save指令
save ""
save 900 1 //900秒(15分钟)之后,且至少1次变更
save 300 10 //300秒(5分钟)之后,且至少10次变更
save 60 10000 // 60秒之后,且至少10000次变更
##redis禁用命令
rename-command FLUSHALL "" // 删除所有数据库的所有key
rename-command CONFIG "" //查看与修改配置的命令
rename-command EVAL "" //执行lua脚本
rdbcompression yes //是否在备份.rdb文件时是否用LZF压缩字符串,默认设置为yes。如果想节约cpu资源可以把它设置为no
rdbchecksum yes //生成的关闭校验的RDB文件有一个0的校验和,它将告诉加载代码跳过检查
dbfilename dump.rdb //rdb文件名
dir /data/rdb //备份文件目录,rdb存储目录
######主从同步设置
masterauth "password" //master连接密码
slave-serve-stale-data yes //"yes" (默认值),slave会继续响应客户端请求,可能是正常数据,也可能是还没获得值的空数据. "no",slave会回复"正在从master同步(SYNC with master in progress)"来处理各种请求,除了 INFO 和 SLAVEOF 命令
slave-read-only yes //限制你可以用'rename-command'来隐藏所有的管理和危险命令来增强只读slave的安全性
repl-diskless-sync yes //同步策略: 磁盘或socket
repl-diskless-sync-delay 5 //如果非磁盘同步方式开启,可以配置同步延迟时间,以等待master产生子进程通过socket传输RDB数据给slave
repl-ping-slave-period 10 // slave根据指定的时间间隔向master发送ping请求。默认10秒
repl-disable-tcp-nodelay no //是否在slave套接字发送SYNC之后禁用 TCP_NODELAY
repl-backlog-size 100mb //设置数据备份的backlog大小。backlog是一个slave在一段时间内断开连接时记录salve数据的缓冲,所以一个slave在重新连接时,不必要全量的同步,而是一个增量同步就足够了,将在断开连接的这段# 时间内把slave丢失的部分数据传送给它。
appendonly no //开启append only模式之后,redis会把所接收到的每一次写操作请求都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态。
appendfilename "appendonly.aof" // AOF文件名
appendfsync everysec //有些操作系统会真的把数据马上刷到磁盘上;有些则会尽快去尝试这么做,
# no:不要立刻刷,只有在操作系统需要刷的时候再刷。比较快。
# always:每次写操作都立刻写入到aof文件。慢,但是最安全。
# everysec:每秒写一次。折中方案。
no-appendfsync-on-rewrite no //缓解aof问题。如果把这个设置成"yes"带来了延迟问题,就保持"no",这是保存持久数据的最安全的方式。
auto-aof-rewrite-percentage 100 //指定百分比为0会禁用AOF自动重写特性
auto-aof-rewrite-min-size 64mb //指定百分比为0会禁用AOF自动重写特性
aof-load-truncated yes //如果设置为yes,如果一个因异常被截断的AOF文件被redis启动时加载进内存,redis将会发送日志通知用户。如果设置为no,erdis将会拒绝启动。此时需要用"redis-check-aof"工具修复文件
slowlog-log-slower-than 10000 //慢查询日志,记录超过多少微秒的查询命令,10000=1s
slowlog-max-len 128 //记录大小,可通过SLOWLOG RESET命令重置
maxclients 10000 //设置最多同时连接的客户端数量。默认这个限制是10000个客户端
################ 集群 ############

二、安全优化

1、如果只是本机访问redis的话bind就设置127.0.0.1,或者设置内网网段访问,尽量不使用0.0.0.0

2、设置密码

3、千万不要使用root运行redis

4、禁用config等危险命令

redis优化的更多相关文章

  1. Redis 优化查询性能

    一次使用 Redis 优化查询性能的实践   应用背景 有一个应用需要上传一组ID到服务器来查询这些ID所对应的数据,数据库中存储的数据量是7千万,每次上传的ID数量一般都是几百至上千数量级别. 以前 ...

  2. 一次使用 Redis 优化查询性能的实践

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,一次使用 Redis 优化查询性能的实践 应用背景 有一个应用需要上传一组ID到 ...

  3. Redis优化之CPU充分利用

    Linux Redis Server之CPU充分利用 不知道大家有没有注意到你们公司的集群配置是否是有一种配置是这样的: 多个Redis Server分布在同一个节点,只是端口不同,如果有的话,应该是 ...

  4. redis 优化

    系统优化echo "vm.overcommit_memory=1" > /etc/sysctl.conf 0, 表示内核将检查是否有足够的可用内存供应用进程使用:如果有足够的 ...

  5. 7. redis优化

    一. redis使用上的优化 精简键名和键值 键名:尽量精简,但是也不能单纯为了节约空间而使用不易理解的键名. 键值:对于键值的数量固定的话可以使用0和1这样的数字来表示,(例如:male/femal ...

  6. Redis优化经验

    内存管理优化 Redis Hash是value内部为一个HashMap,如果该Map的成员数比较少,则会采用类似一维线性的紧凑格式来存储该Map, 即省去了大量指针的内存开销,这个参数控制对应在red ...

  7. redis优化配置和redis.conf说明

    1. redis.conf 配置參数: #是否作为守护进程执行 daemonize yes #如以后台进程执行,则需指定一个pid,默觉得/var/run/redis.pid pidfile redi ...

  8. 《Redis 优化》

    一:管道技术 - 由于 redis 和 客户端是使用 TCP 连接的,那么在使用中就会产生往返耗时. - 虽然可能单条影响并不大,但是如果执行较多的命令会对性能产生影响. - 使用管道原理和 keep ...

  9. redis优化配置和redis.conf说明(转)

    1. redis.conf 配置参数: #是否作为守护进程运行 daemonize yes #如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid pidfile redi ...

随机推荐

  1. Java开发笔记(二十七)数值包装类型

    方法的出现缘起优化代码结构,但它的意义并不局限于此,正因为有了方法定义,编程语言才更像一门能解决实际问题的工具,而不仅仅是只能用于加减乘除的计算器.在数学的发展过程中,为了表示四则运算,人们创造了加减 ...

  2. 微信公众号页面的web页面键盘弹起问题

    今天开发的过程中,遇到了一个小问题,是这样的,  UI的设计稿中有个底部的按钮是相对于屏幕定位的,但是这个页面还有一个输入框:具体情况请看下图: 这就造成了当我们输入框获取焦点的时候,键盘弹起,下面的 ...

  3. 仿9GAG制作过程(五)

    有话要说: 在做完了数据展示功能之后,就想着完善整个APP.发现现在后台非常的混乱,有好多点都不具备,比方说:图片应该有略缩图和原图,段子.评论.点赞应该联动起来,段子应该有创建时间等. 于是就重新设 ...

  4. ArrayAdapter、SimpleAdapter简单用法

    1. 使用流程 2. ArrayAdapter new ArrayAdapter<?>(context, textViewResourceId, objects)   context:上下 ...

  5. 预置第三方apk到MTK项目相关问题总结

    目前5.0之后项目预置方式通用步骤为: 建立apk文件夹;  置目标apk到该文件夹下;   解压缩apk查看是否包含lib/文件夹(apk项目是否包含lib库文件);  在该文件夹下编写Androi ...

  6. 自动的自动化:EvoSuite 自动生成JUnit的测试用例

    EvoSuite简介 EvoSuite是由Sheffield等大学联合开发的一种开源工具,用于自动生成测试用例集,生成的测试用例均符合Junit的标准,可直接在Junit中运行.得到了Google和Y ...

  7. per-CPU变量

    为什么需要per-CPU变量 假设系统中有4个cpu, 同时有一个变量在各个CPU之间是共享的,每个cpu都有访问该变量的权限. 当cpu1在改变变量v的值的时候,cpu2也需要改变变量v的值.这时候 ...

  8. Github上如何查看当前最流行的开源项目

    先声明下:只针对初学者,大神的话勿喷. 针对题标的这个问题,按照如下步骤操作即可: 进入Github网站后,显示的页面如下所示: 点击"Explore"链接,进入如下页面: 页面上 ...

  9. Windows的GDI映射方式,逻辑坐标,设备坐标的理解

    最近在学Win32的编程,看的是<Windows程序设计第5版>一书,这本书是台湾人翻译的,有些译法和大陆不一样,书中还有一些错误的地方,很多时候需要中英文对照阅读,下载请点击 https ...

  10. 在Linux系统中同步更新我们的Github博客

    原理介绍 类似于版本管理,我们把我们的hexo博客文件系统在Github上建立一个分支,通过管理分支提交最新的博客文件系统,保证我们博客框架的更新.然后我们基于最新的博客框架,撰写文章,进行Githu ...