当前位置:首页 > 公众号精选 > 架构师社区
[导读]Redis 作为现在最流行的内存数据库,已经成为缓存界的扛把子。

前言

Redis 作为现在最流行的内存数据库,已经成为缓存界的扛把子。在使用过程中我们必然希望能够充分发挥 Redis的 强大性能,为此本文总结了正确使用 Redis 的十条准则。

正文

1. 避免慢查询命令

顾名思义,慢查询命令就是执行起来比较慢的命令。Redis 本身为我们提供了很多命令,但是在使用过程中,会导致不同的处理速度,稍有不慎就会造成性能变慢。


举个简单例子,我们有一个 set ,如果我们想要得到它其中的所有成员时。不要使用 SMEMBERS 命令,而是去用 SSCAN。因为后者是通过多次迭代将数据返回,防止一次性拉取大量数据带来的阻塞。

2. 一定不要使用 Keys 命令

生产环境下,数据量一般都比较大。一旦使用 Keys 命令,会遍历已经存储的所有Key,延时非常高,很容易拖垮 Redis。

3. 对 Key 要设置过期时间

Redis 作为一个存储介质,内存资源还是相当宝贵的。因此我们需要根据业务需求,对应地将 Key 设置过期时间,让空间能够定期的得到释放。

4. 不要给大量的 Key 设置相同的过期时间

如果大量的 Key 在相同的时间过期,会造成缓存雪崩问题。在这个时间节点,缓存失效,直接到达数据库,对数据库造成巨大的压力。最简单的解决办法就是在给每个 Key 设置过期时间的时候,加上一个随机值。

5. 选择与业务相对应的数据结构

Redis 为我们提供了五种基本数据结构:String、Hash、List、Set、Zset。还有几种扩展的类型:HyperLogLog、BitMap等。如果想实现一个排行榜的功能,首推肯定是选择Zset,因为它自带了排行的能力,省去了我们自己实现的过程。

6. 选择适用的持久化策略

Redis 有两种最常见的持久化策略 ,简单介绍下:

AOF 日志 :以追加的方式,把所有指令记录到日志中。

RDB 快照:以快照 SNAPSHOT 的方式,把某一时刻的内存数据完整的记录下来。

不同的持久化策略对性能的要求不同,所以在使用中需要选取适应的策略。

7. 采用高速固态硬盘

有条件的情况下,尽可能使用高速固态硬盘。Redis 作为缓存,一般处理的数据量非常大,对磁盘和性能压力也非常大。

8. 使用 Redis 集群

”三个臭皮匠顶过诸葛亮“,一台机器的内存空间和处理能力终究是有限的。面对大规模高并发的场景,采用 Redis 集群显得尤为重要。

9. 优化客户端

在客户端与 Redis 的连接上,尽可能使用 Redis 连接池。本质上和线程池、数据库连接池都是一样的道理。就是为了减少频繁创建和销毁连接,能够让资源更好地进行复用,减少不必要的网络传输。

10. 选择合适的分布式架构

Redis 提供了几种分布式架构:

a. 主从同步

b. 哨兵模式

c. Redis Cluster 集群模式

首推 Cluster 集群模式,它能够实现读写压力自动分流和自动容灾。但是配置和问题处理对经验能力要求比较高。所以可以根据自己业务系统的情况,去有针对性地选择。如果项目不大,其实也没有必要直接就采用 Cluster 集群模式。

总结

希望通过本文能够帮助大家对 Redis 有更好地使用,所有的技术都是为了业务服务,选取最合适的才是最好的。


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

摘要:对步进电机优化研究的必要性、特点进行了阐述,并详细介绍了步进电机的设计方法。以某卫星天线驱动用步进电机为基础,分析了不同的转子结构、电磁参数对步进电机性能的影响,并进行了性能优化研究。

关键字: 磁钢厚度 铁芯迭长 性能优化

上周有位读者字节一二面时,被问到:Redis 的大 Key 对持久化有什么影响?

关键字: 字节 Redis 大 Key

北京2022年4月18日 /美通社/ -- 4月9日-13日,第十三届国际性能工程学大会(ICPE2022)在线召开,大会由国际计算机协会ACM和标准性能评估组织SPEC联合举办,高效能服务器和存储技术国家重点实验室承办...

关键字: 性能优化

问题描述C保险公司业务系统中,团体保险明细查询速度很慢。查询时输入保单号,要返回团体保单包含的所有被保险人的信息。较小的保单,包含1万个被保险人,返回页面需要等待7.5分钟。较大的保单,包含100万被保险人,返回页面等待...

关键字: 数据库 SQL 代码 性能优化

前言这篇文章的主题是记录一次Python程序的性能优化,在优化的过程中遇到的问题,以及如何去解决的。为大家提供一个优化的思路,首先要声明的一点是,我的方式不是唯一的,大家在性能优化之路上遇到的问题都绝对不止一个解决方案。...

关键字: TCP 性能优化 数据库 PS

↓推荐关注↓今天分享一篇内存性能优化的文章,文章用了大量精美的图深入浅出地分析了Linux内核slab性能优化的核心思想,slab是Linux内核小对象内存分配最重要的算法,文章分析了内存分配的各种性能问题(在不同的场景...

关键字: 内存 性能优化

↓推荐关注↓今天分享一篇内存性能优化的文章,文章用了大量精美的图深入浅出地分析了Linux内核slab性能优化的核心思想,slab是Linux内核小对象内存分配最重要的算法,文章分析了内存分配的各种性能问题(在不同的场景...

关键字: 内存 性能优化

前言相信大多数的小伙伴都会觉着性能优化是一件很复杂的事,那么事实是不是这样的呢?优化应用程序获得最佳性能确实不是一件容易的事。它需要一定的经验和知识。那么,现阶段还不具备这样的经验和知识的我们,是不是就做不到了呢?也不是...

关键字: 性能优化

摘 要:物联网技术涵盖了多种多样的形式,在工商业燃气无线抄表平台设计中,Redis技术有效分担了数据采集服务器的负荷,延长了电池的使用寿命,是一种高效、快速、简捷的新技术。

关键字: 物联网 Redis 无线抄表 数据采集服务器

来源:https://segmentfault.com/a/1190000018075241前言这篇文章的主题是记录一次程序的性能优化,在优化的过程中遇到的问题,以及如何去解决的。为大家提供一个优化的思路,首先要声明的一...

关键字: 性能优化
关闭
关闭