云服务器网:购买云服务器和VPS必上的网站!

马兵士讲授:Redis利用实践

Redis是当下主流的高性能Key-Value内存数据库,在散布式存储领域,利用广泛。本文将讲授Redis利用实践,其中包括有Redis作缓存,Redis实现限流和Redis用来进行消息队列。
### 1、Redis作缓存
Redis作为一个内存数据库,其读取

redis是当下主流的高性能Key-Value内存数据库,在散布式存储领域,利用广泛。本文将讲授Redis利用实践,其中包括有Redis作缓存,Redis实现限流和Redis用来进行消息队列。

### 1、Redis作缓存

Redis作为一个内存数据库,其读取和写入速度都非常快,因此通经常使用于数据缓存。比照实现散布式缓存系统时,可使用Redis来存储相关缓存数据,比如购物车信息、用户点击统计信息的。

有人可能会想,Redis也是一种缓存系统,缓存系统也能够用来存储缓存数据。但是Redis的优势在于其高并发性能和极高的吞吐量,也就是说,Redis的处理效力优于传统的缓存系统。

实现Redis作缓存时,可使用String、Hash、List、Set等数据结构(注意:请确保使用有效的key)。

实例代码:

package com.mashibing.cache;
import redis.clients.jedis.Jedis;

public class CacheUtil {
public static void setCacheInfo(String key , String value){
Jedis jedis = new Jedis("127.0.0.1");
jedis.set(key, value);
jedis.close();
}

public static String getCacheInfo(String key){
Jedis jedis = new Jedis("127.0.0.1");
String value = jedis.get(key);
jedis.close();
return value;
}
}

### 2、Redis实现限流

有些场景中,会出现大量的并发要求,如果这些要求都履行,极可能造成系统阻塞或死锁等现象。这时候候可使用Redis来控制这些要求的流量,实现一定程度的限流。

可使用Redis的脚本实现,脚本中实现了3个redis命令:get、incrby、exprx,用于实现限流策略。具体实现步骤以下:

1. 从redis中读取key对应的值,从而肯定当前要求数会不会超过了设定的限流值

2. 若要求数还没有超过限流值,则对key增加值;若超过限流值,则返回毛病

3. 用set命令设置定时过期时间,以便系统重置

实例代码:

# 限流脚本
# 参数:key,max_num,expire_time
# 表示key对应的值最大值不超过max_num,超过max_num时,返回失败并设置key的过期时间为expire_time
if redis.call("get",KEYS[1]) == false then
redis.call("incrby", KEYS[1], 1)
redis.call("expire", KEYS[1], KEYS[3])
return true
else
local value = redis.call("incrby", KEYS[1], 1)
if value > tonumber(KEYS[2]) then
redis.call("decrby", KEYS[1], 1)
return false
else
redis.call("expire", KEYS[1], KEYS[3])
return true
end
end

### 3、Redis用来做消息队列

Redis实现消息队列可以采取list数据结构,push/pop可以用来实现入队/出列,基本实现消息队列的处理。下面是一个实现消息队列的简单示例:

实例代码:

# 消息队列脚本
# 返回消息队列长度

return redis.call('llen',KEYS[1])

本文讲授了Redis的利用实践,包括Redis作缓存、Redis实现限流和Redis作为消息队列。希望通过本文,大家可以更好地理解redis的利用,利用redis来满足实际需求。

本文来源:https://www.yuntue.com/post/225113.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注