Redis开发与运维-第2章 API的理解和使用-使用场景

1.字符串
1.1缓存功能
比较典型的缓存使用场景,其中Redis作为缓存层,MySQL作为存储层,大部分请求的数据从Redis中获取。由于Redis具有支撑高并发的特性,所以缓存通常能起到加速读写和降低后端压力的作用。
在这里插入图片描述
整个功能的伪代码如下:

UserInfo getUserInfo(long id){
   
   
	userRedisKey = "user:info:" + id;// 定义键
	value = redis.get(userRedisKey);//从Redis获取值
	UserInfo userInfo;
	if (value != null) {
   
   
		userInfo = deserialize(value);// 将值进行反序列化为UserInfo并返回结果
	} else {
   
   
		userInfo = mysql.get(id);// 从MySQL获取用户信息
		if (userInfo != null)
			redis.setex(userRedisKey, 3600, serialize(userInfo));// 将userInfo序列化,并存入Redis
	}
	return userInfo;
}

1.2计数
许多应用都会使用Redis作为计数的基础工具,它可以实现快速计数、查询缓存的功能,同时数据可以异步落地到其他数据源。例如笔者所在团队的视频播放数系统就是使用Redis作为视频播放数计数的基础组件,用户每播放一次视频,相应的视频播放数就会自增1:

long incrVideoCounter(long id) {
   
   
	key = "video:playCount:" + id;
	return redis.incr(key);
}

实际上一个真实的计数系统要考虑的问题会很多:防作弊、按照不同维度计数,数据持久化到底层数据源等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值