博文索引

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. 洛谷 P1401 城市

    写在前面 今天来水主题库里的有水分的紫题,随便一翻竟然找到宝了. 小清新二分 + 网络流. 算法思路 考虑到题目中限制的是最大边权,要求最大边权最小,那么很容易想到二分答案. 单调性的证明:最大边权是 ...

  2. 提供读取excel 的方法

    /** * 对外提供读取excel 的方法 * */ public static List<List<Object>> readExcel(String path) throw ...

  3. linux(1)Mac上传文件到Linux服务器

    前言 我们使用mac时,想让本地文件上传至服务器,该怎么办呢 windows系统,我们可以使用xftp或者rz命令,那么mac呢? mac系统,我们可以使用sftp.scp或者rz命令,本文介绍sft ...

  4. shell脚本的使用该熟练起来了,你说呢?(篇四)

    继续前一篇的文章: shell脚本的使用该熟练起来了,你说呢?(篇一) shell脚本的使用该熟练起来了,你说呢?(篇二) shell脚本的使用该熟练起来了,你说呢?(篇三) 文章里面测试的命令脚本文 ...

  5. 软件测试漫谈(web测试,自动化测试,Jmeter)

    软件测试,就是一个过程或一系列过程,用来确定计算机代码完成了其应该完成的功能不执行其不该有的操作. 简单说就是找bug的过程. 测试分类 (1)按测试方式分类:静态测试.动态测试 (2) 按测试方法分 ...

  6. 机器学习算法之Kmeans算法(K均值算法)

    Kmeans算法(K均值算法) KMeans算法是典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大.该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑 ...

  7. trie浅谈

    关于trie ​ 其实字典树和以上两种算法有很大不同,但是hash由于其优秀的应用,导致有些字符串查找用hash也是可行的. ​ 字典树中支持添加,查找,区间查询(可持久化字典树),而且在异或操作上有 ...

  8. hdu 01 Matrix

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  9. JavaScript——浏览器检查

    遍历opera中的所有方法

  10. AtCoder Beginner Contest 170 D - Not Divisible (数学)

    题意:有一长度为\(n\)的数组,求该数组中有多少元素不能整除其它任一元素的个数. 题解:刚开始写了个分解质因数(我是傻逼),后来发现直接暴力枚举因子即可,注意某个元素出现多次时肯定不满足情况,再特判 ...