玖叶教程网

前端编程开发入门

BAT 资深程序员对 Redis 场景实战的解析

1 简介

分布式缓存是分布式系统中的重要组件,主要解决高并发、大数据场景下,热点数据访问的性能问题,提供高性能的数据快速访问。

使用缓存常见场景是:项目中部分数据访问比较频繁,对下游 DB(例如 MySQL)造成服务压力,这时候可以使用缓存来提高效率。

缓存组件有很多种,大家熟知的 Redis、Tair、MemCache 等。今天我们重点介绍 Redis 缓存数据库相关的内容知识。

Redis 是开源免费,性能不错的 key-value 数据库。Redis 的特点包括:

Redis 除了支持 key-value 类型的数据,同时还支持其他多种数据结构的存储;

Redis 支持数据持久化存储,可以将数据存储在磁盘中,机器重启数据将从磁盘重新加载数据;

Redis 支持数据的备份,即 Master-Slave 模式的数据备份。

Redis 作为缓存数据库和 MySQL 这种结构化数据库进行对比。

从数据库类型上,Redis 是 NoSQL 半结构化缓存数据库, MySQL 是结构化关系型数据库;

从读写性能上,MySQL 是持久化硬盘存储,读写速度较慢, Redis 数据存储读取都在内存,同时也可以持久化到磁盘,读写速度较快;

从使用场景上,Redis 一般作为 MySQL 数据读取性能优化的技术选型,彼此配合使用。

接下来我们将重点向大家介绍关于 Redis 几个方向的知识内容:

Redis 基本数据结构与实战场景

Redis 常见异常及解决方案

分布式环境下常见的应用场景

Redis 集群模式的介绍与总结

Redis 常见面试题目详解

2 Redis 基本数据结构与实战场景

2.1 基本类型

我们用一个简单的导图来简单复习一下 Redis 的基本数据类型:

2.2 常用指令

接下来看看每个数据结构常用的指令有哪些,我们用一张表比较清晰的展示:

戳 http://t.cn/EaqxnZt

1000 个线程压测时 Redis Incr 出现错误,就是 Timeout,怎么排查?有什么好的经验分享?

答:这个我们之前真的遇到过,是商城首页获取数据的时候导致 timeout。不过后来发现不是因为并发量高,是链接忘记释放了。

你的这种情况我建议:

先查看一下与 Redis 服务器相连的配置项是否正确,比如说 Maxidle、Maxwait、MaxActive 等。

然后看一下压测服务器以及 Redis 服务的资源情况如何,常见的 CPU、内存、磁盘、Load 等。

重点看一下 Redis 的连接数是什么情况,是不是连接数过多,导致超时,对比一下最大连接数和当前连接数。

jedispool 链接对象无法释放,这个怎么办?代码写了在 finally 里面也执行了,然后看客户端连接数越来越多,最后项目挂了怎么办?

戳 http://t.cn/EaqxnZt

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言