博文索引

Redis 简介

优点

  • 多功能

    提供了丰富的数据结构,可以满足很多实用场景,基本上能做到开箱即用

    并且支持管道、事务、发布订阅、缓存过期、Lua脚本支持等高级功能

  • 高性能

    数据内存数据库,读写无需访问外存

    单线程设计,访问内存无需线程切换与同步

  • 易部署

    支持持久化,方便数据恢复

    主从复制,提高数据的安全性

    配合 Redis Cluster 可以实现数据分片,突破单机容量限制

    配合 Redis Sentinel 可以实现自动灾备,实现高可用

缺点

  • 存储容量受限

    作为一款内存数据库,内存始终是主要瓶颈

    由于内存价格较磁盘更为昂贵,因此需要细心规划 redis 的使用

  • CPU利用率

    redis 的单线程设计,会导致多核 CPU 的资源利用率不高

    需要同一台机器上部署多个实例来提高 CPU 使用率

  • 大规模应用有坑

    运维架构不完整,缺少监控

    不擅长应对高连接数 (>10K) 或大数据量 (>16G) 的场景

应用场景

  • 缓存(效率至上)

    单副本,关闭主从复制

    关闭 AOF / BGSAVE,减少磁盘 I/O 对性能影响

    节点宕机,直接切空实例(丢失部分数据)

  • 数据库(兼顾安全)

    双副本,开启主从复制

    主库关闭 AOF / BGSAVE

    主挂切备,备挂换新备

  • 大规模应用(横向扩展)

    搭建集群,分摊压力

    读写分离,以一致性换取性能

最佳实践

  • 合理设计 key-space,用 db 隔离不相关数据,为横向扩容预留空间
  • 严禁设置低读超时 (<200ms) 和紧密重试,避免重连风暴
  • 留意 key 分布,避免出现数据倾斜
  • 避免保存超过 10k 的大 value
  • 设置 ttl 时引入随机性,避免大量 key 同时过期
  • 避免使用部分高级功能:Transaction, Pub/Sub, Blocking API,LUA Script
  • 避免使用高危命令:keys、flushdb、flushall
  • bitset 注意检查长度,避免引发 OOM

Redis 博文索引的更多相关文章

  1. Kafka 博文索引

    博文索引 KafkaBroker 简析 KafkaConsumer 简析 KafkaProducer 简析 KafkaMirrorMaker 的不足以及一些改进 Kafka 简介 数据是系统的燃料,系 ...

  2. Lodop的JS模版代码、文档式模版 生成加载赋值博文索引

    Lodop获取全部JS代码,传统JS模版的生成.LODOP设置打印设计返回JS代码是变量 LodopJS代码模版的加载和赋值 Lodop生成文档式模版 LodopJS文档式模版的加载和赋值 由于加载J ...

  3. 手把手教你使用FineUI开发一个b/s结构的取送货管理信息系统系列博文索引

    近阶段接到一些b/s类型的软件项目,但是团队成员之前大部分没有这方面的开发经验,于是自己选择了一套目前网上比较容易上手的开发框架(FineUI),计划录制一套视频讲座,来讲解如何利用FineUI快速开 ...

  4. Jmeter博文索引~基础知识和实践操作汇总

    所有Jmeter笔记的目录/索引 一,基础操作和常用操作 Jmeter入门(一)理论基础 Jmeter安装及配置(含JDK安装) Jmeter之设置线程组运行次数/时间 Jmeter之参数化(4种设置 ...

  5. 【非lodop的】JS和html相关博文索引

    JS: eval()方法:JS-JAVASCRIPT的eval()方法. Date()对象.getFullYear() 方法.getDate()方法.console.dir()方法:LODOP打印用J ...

  6. 使用高斯Redis实现二级索引

    摘要:高斯Redis 搭建业务二级索引,低成本,高性能,实现性能与成本的双赢. 本文分享自华为云社区<华为云GaussDB(for Redis)揭秘第21期:使用高斯Redis实现二级索引> ...

  7. redis的安装配置

    主要讲下redis的安装配置,以及以服务的方式启动redis 1.下载最新版本的redis-3.0.7  到http://redis.io/download中下载最新版的redis-3.0.7 下载后 ...

  8. redis参考文档

    本文为之前整理的关于redis的文档,放到博客上一份,也方便我以后查阅. redis简介 Redis是一个开源的.高性能的.基于键值对的缓存与存储系统, 通过提供多种键值数据类型来适应不同场景下的缓存 ...

  9. 4、解析配置文件 redis.conf、Redis持久化RDB、Redis的主从复制

    1.Units单位 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 对大小写不敏感 2.INCLUDES包含 和我们的Struts2配置文件类似,可以通过includes包 ...

随机推荐

  1. ThinkPHP 5.0.24 反序列化RCE (Windows下EXP)

    直接上exp吧,Windows下. <?php namespace think\process\pipes; class Windows { private $files = []; publi ...

  2. Cmder的findstr问题

    在环境变量中加入C:\windows\system32即可

  3. ESRI,空间数据处理,WKT,GeoJson

    ESRI,空间数据处理,WKT,GeoJson 一.WKT 二.GeoJson 三.WKT转GeoJson 四.GeoJson 转 WKT 一.WKT WKT(well-known text)是一种文 ...

  4. CS代理+proxychains+nmap进行内网扫描

    前提:拿下边界机之后,进入内网,想用nmap怎么办? CS可以开启代理,但是是socks4的代理,只能使用tcp协议,所以nmap使用的时候要使用-sT选择使用tcp_协议,要使用-Pn不使用ICMP ...

  5. 学生信息管理系统总结——student数据库中表关系分析

    说到关系,那就不得不提两个东西: 1.E-R图,也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型.属性和联系的方法,用来描述现实世界的概念模型 2.关系模 ...

  6. 并发队列:ArrayBlockingQueue实际运用场景和原理

    ArrayBlockingQueue实际应用场景 之前在某公司做过一款情绪识别的系统,这套系统通过调用摄像头接口采集人脸信息,将采集的人脸信息做人脸识别和情绪分析,最终经过一定的算法将个人情绪数据转化 ...

  7. HttpRunner(1)自我介绍

    前言 首先,我们无论学习哪个框架,都要带着问题,带着思考去学习 思考1:HttpRunner是什么? 思考2:HttpRunner的设计模式是什么? 思考3:为什么我们要学习HttpRunner?他的 ...

  8. 负载均衡之LVS与Nginx对比

    今天总结一下负载均衡中LVS与Nginx的区别,好几篇博文一开始就说LVS是单向的,Nginx是双向的,我个人认为这是不准确的,LVS三种模式中,虽然DR模式以及TUN模式只有请求的报文经过Direc ...

  9. D - D (最短路解决源点到多点,多点到源点的和(有向图))

    问从1号点到各个点的距离+各个点到1号点之间的距离和的最小值 In the age of television, not many people attend theater performances ...

  10. 2013 Asia Hangzhou Regional Contest hdu4780 Candy Factory

    参考:https://blog.csdn.net/sd_invol/article/details/15813671 要点 每个任务的结束时间是固定的,不受任何因素影响 机器只在最一开始有用,在那之后 ...