文档章节

Redis_注意事项

sand_ant
 sand_ant
发布于 2016/06/21 14:02
字数 877
阅读 9
收藏 0

注意事项

设置最大内存

一定要设置最大内存,否则物理内存用爆了就会大量使用Swap,写RDB文件时变得非常缓慢。
如果不限制导致内存占用过大时,可能会被linux内核强制kill
可以在/var/log/messages文件中看见如下信息:
Out of memory: Kill process 2030 (redis-server) score 679 or sacrifice child

内存限制

如果超过最大内存而且没有设置删除策略或者删除策略已不满足,则无法写入

不要使用过长的key

Key 可以是任意类型,最后都存成byte[]
Key 不能太长,比如1024字节,但也不追求太短,建议用":"分隔表名,用"."作为单词间的连接。

key数量限制

一个实例最大可以存储 2^32个key
hash, list, set, sorted set, 可以存储 2^32个元素

value长度限制

单个value长度限制为最大512M

RDB&AOF

  • 每次保存 RDB 的时候,Redis 都要 fork() 出一个子进程,并由子进程来进行实际的持久化工作。
    在数据集比较庞大时, fork() 可能会非常耗时,造成服务器在某某毫秒内停止处理客户端;
    如果数据集非常巨大,并且 CPU 时间非常紧张的话,那么这种停止时间甚至可能会长达整整一秒
  • 当子进程完成对新 RDB 文件的写入时,Redis 用新 RDB 文件替换原来的 RDB 文件,并删除旧的 RDB 文件 RDB 文件需要保存整个数据集的状态, 所以它并不是一个轻松的操作。 因此你可能会至少 5 分钟才保存一次 RDB 文件。
  • AOF为追加操作,每次耗时不会太长,2.2之后的版本可以配置追加的达到一定大小后自动重写AOF,减小无用的存储
    在不重写的情况下,如果你对一个计数器调用了 100 次 INCR , 那么仅仅是为了保存这个计数器的当前值, AOF 文件就需要使用 100 条记录
  • AOF的恢复速度比RDB慢得多
  • AOF 在过去曾经发生过这样的 bug : 因为个别命令的原因,导致 AOF 文件在重新载入时,无法将数据集恢复成保存时的原样。 (举个例子,阻塞命令 BRPOPLPUSH 就曾经引起过这样的 bug 。) 测试套件里为这种情况添加了测试: 它们会自动生成随机的、复杂的数据集, 并通过重新载入这些数据来确保一切正常。 虽然这种 bug 在 AOF 文件中并不常见, 但是对比来说, RDB 几乎是不可能出现这种 bug 的。
  • 如果 RDB 持久化和 AOF 持久化都被打开了, 那么程序会优先使用 AOF 文件来恢复数据集

生产环境代码不要使用keys指令

keys执行会做全库扫描,非常消耗redis服务器的cup,对于单核cup的redis来说,频繁的keys操作,会导致CPU很容易就被占满

修改最大连接数

linux的默认连接数(128),和redis的默认最大连接数量(511)一般对于生产环境来说都太小。生产环境或者压测环境注意修改相应的数值为合适的值,redis客户端的最大连接数不要忘记调整

© 著作权归作者所有

共有 人打赏支持
sand_ant
粉丝 3
博文 35
码字总数 18706
作品 0
无锡
phalcon 一些开发注意事项和redis配置

开发注意事项 关于命名空间,需要在loader中加载命名空间,如 services目录中,有Auth类。 ·loader.php : Auth类中添加命名空间 引入命名空间 Redis配置 ·services.php $di->setShared("re...

林伟盛
03/02
0
0
windows下scrapy-redis如何为redis配置密码

windows下scrapy-redis如何为redis配置密码 1. 环境 系统:win7 scrapy-redis redis 3.0.5 python 3.6.1 2. 为redis-server配置密码并启动 redis在windows下的安装与配置,请参考这篇文章:h...

zwq912318834
2017/12/27
0
0
Redis安全注意事项

本文简要介绍 Redis 安全相关的话题, 包括: Redis访问控制机制、Redis源码安全性, 外部输入可能触发的恶意攻击, 以及其他相关问题。 如果要反馈安全问题, 请到 GitHub 上提出 issue, 当然, 如...

renfufei
2017/11/30
0
0
Centos 7搭建Redis服务及配置

下载redis 解压,重命名 编译 Redis主从结构支持一主多从 主节点:192.168.33.130 从节点:192.168.33.131 注意:所有从节点的配置都一样 方式1:手动修改配置文件 只需要额外修改从节点中r...

투판시
2017/10/20
0
0
Redis分布式缓存系统Lua脚本食用指引

Redis 为什么添加 Lua 支持 redis lua 脚本出现之前 Redis 是没有服务器端运算能力的,主要是用来存储,用做缓存,运算是在客户端进行,这里有两个缺点:一、如此会破坏数据的一致性,试想如...

斯武丶风晴
2016/06/15
76
0

没有更多内容

加载失败,请刷新页面

加载更多

Future,Thread,Callable,Executors.newXXXThreadPool

package cunrent.future;import java.util.concurrent.*;public class FutureCook { public static void main(String[] args) throws InterruptedException, ExecutionExcept......

noteman
9分钟前
0
0
shing boot 做session共享 redis

因为多台服务器负载均衡,在获取客户端的sessionId的时候,会出现第一次和第二次不一样,因为负载均衡的缘故,你的服务器最少两台,那么客户端连接第一次请求和第二次请求如果不是同一台服务...

小马_wolf
13分钟前
0
0
【Springboot+mybatis】 解析Excel并批量导入到数据库

【Springboot+mybatis】 解析Excel并批量导入到数据库置顶 2018年01月16日 20:05:52 冉野丶 阅读数:4060 标签: excel导入数据库 文件上传 excel解析 更多个人分类: POI 工作问题归纳...

奥特曼之王
15分钟前
1
0
Mac OS下安装Axure RP 8.0.0.3312 中文破解版

Mac下一款快速原型设计工具——Axure RP,有了它可以大大提高你的工作效率。此次带来的是Axure RP 8.0.0.3312 版本。 介绍 Axure RP 能帮助网站需求设计者,快捷而简便的创建基于网站构架图的...

james_laughing
17分钟前
0
0
【Guava】使用Guava的RateLimiter做限流

一、常见的限流算法 目前常用的限流算法有两个:漏桶算法和令牌桶算法。 1.漏桶算法 漏桶算法的原理比较简单,请求进入到漏桶中,漏桶以一定的速率漏水。当请求过多时,水直接溢出。可以看出...

大海201506
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部