利用Redis缓存提升业务性能(一般哪些业务放redis)

背景:

现在,相信大部分业务都使用 Redis 作为请求的缓存存储结构。随着业务的不断增长,系统流量和数据量不断增加,势必会造成访问数据库带来的拖慢业务处理和性能问题,所以一定程度上提升系统性能就必须要借助于Redis的缓存帮助。

缓存的理解:

所谓的缓存(Cache),就是一种存储最常访问的数据的临时内存,缓存把常用的数据放到内存中,减少与外部数据的交互,从而提高系统的处理效率,缩短响应性能所需的时间。

利用 Redis 缓存提升业务性能:

利用 Redis 缓存技术可以减少应用程序对数据库的访问,节省 I/O 资源,提高对请求的响应时间,从而提高业务性能。

一般来说,将业务中经常使用到的数据进行缓存,就可以缩短请求查询数据库或访问其他后端程序的时间。

借助Redis可以通过以下3个方面提升业务性能:

(1)减少系统的 IO 次数:在业务中需要访问数据库多次,这种情况下比较适合采用 Redis 缓存技术来减少 IO 的次数,从而提升系统处理能力,减少响应时间。

(2)提升系统的响应能力:拥有系统良好的响应能力,当用户发送请求时,尽可能快的获取响应内容,从而提升业务性能。

(3)缩短查询数据库/访问其他后端程序的时间:将常用的数据放到 Redis 缓存中,以减少和外部数据的交互,缩短响应性能所需的时间,从而提升业务性能。

例子:

假设有一种简单的电商业务,有一个获取商品信息的请求,如果把每次请求都查询数据库,获取商品信息,那么每次响应时间都会很慢,出现体验不够流畅的情况。可以通过 redis 缓存这些静态数据,保存在 Redis 缓存中,当请求商品信息时,先从 Redis 中获取,如果有,则从 Redis 中获取,如果没有,则从数据库中获取,并把数据存入 Redis,这样就可以避免每次都访问数据库,极大的提升了响应时间,从而提升业务性能。

python 代码如下:

#将商品信息存入redis

import redis

r = redis.Redis(host=”localhost”, port=6379, db=0)

# 设置键 key = ‘product_id’ , 将商品信息存入Redis,定义超时时间为 10 分钟

r.setex(key, 10 * 60, ‘product_info’)

#从 redis 中获取商品信息

import redis

r = redis.Redis(host=”localhost”, port=6379, db=0)

# 获取 key = ‘product_id’ 的商品信息

product_info = r.get(key)

if product_info is None: # 如果在Redis中找不到对应的值,则查询数据库

product_info = query_db()

r.setex(key, 10 * 60, product_info) # 以 key = ‘product_id’的键,把商品信息存入redis,定义超时时间为 10 分钟

结论:

Redis 缓存技术实现绝对是有效应对上面提到的 IO 问题,但是使用不当会造成缓存击穿、缓存雪崩等问题


数据运维技术 » 利用Redis缓存提升业务性能(一般哪些业务放redis)