各位晚上好,这几天复习一下Redis中的数据结构。
首先,字符串类型是Redis最基础的数据结构。首先,键(key)都是字符串类型,而且在Redis中的其他数据结构都是在字符串类型的基础上构建的。字符串类型的值实际可以是字符串(简单字符串、JSON或XML字符串),数字,甚至是二进制,但大小有限制(512M)。
那么,字符串数据结构的应用场景都有哪些呢?
应用场景一:缓存
先看示意图:
Web服务先从Redis中获取数据,如果命中,则对数据进行反序列化后直接返回,若在Redis中没有查询到,则去存储层获取数据返回给Web,并将获取到的信息序列化后存入到Redis。
应用场景二:共享Session。
在一个分布式Web服务中,往往会将用户的Session信息(比如,登录成功后的用户名等信息)保存在不同的服务器中,然而,出于负载均衡的考虑,分布式服务会将用户的访问均衡到不同服务器上,这样,当用户刷新一次访问可能会发现需要重新登录,这就比较尴尬了!
这时,可以将用户需要保存的Session信息集中管理,保存到Redis中。如图:
应用场景三:限速
我们都会有这样的体验,使用某平台时,不能在一分钟内重复提交多次,那么,Redis就可以完成这样的功能。
伪代码如下:
phoneNum="151xxxxxx"
key="shortMsg:limit:"+phoneNum;
isExists=redis.set(key,1,"EX 60","NX");
if(isExists!=null redis.incr(key)
// 可以访问,通过
}else{
// 不能访问,限速
}
那句“redis.set(key,1,"EX 60","NX");”的意思是在60秒之内不能对某个key设置值,而且该key60秒后过期。
今天的内容就是这些,明天再见。
各位,冲啊!
领取专属 10元无门槛券
私享最新 技术干货