Redis字符串数据结构的使用场景

各位晚上好,这几天复习一下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秒后过期。

今天的内容就是这些,明天再见。

各位,冲啊!

本文来自企鹅号 - 攀言媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏木木玲

设计模式 ——— 职责链模式

1113
来自专栏H2Cloud

FFRPC应用之Client/Server

摘要: Ffrpc 进行了重构,精简了代码,代码更加清晰简洁,几乎完美的达到了我的预想。接下来将写几遍文章来介绍ffrpc可以做什么。简单总结ffrpc的特性是...

3615
来自专栏Spark学习技巧

SparkStreaming源码阅读思路

1022
来自专栏技术博客

设计模式之十(外观模式)

外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一系统更加容易使用.

552
来自专栏大内老A

WCF服务端运行时架构体系详解[上篇]

WCF的服务端架构体系又可以成为服务寄宿端架构体系。我们知道,对于一个基于某种类型的服务进行寄宿只需要使用到一个唯一的对象,那就是ServiceHost。甚至在...

1809
来自专栏Java帮帮-微信公众号-技术文章全总结

Python常见面试题【悟空教程】

1.MySQL 数据库总结 MySQL 可以建多少个数据库,理论上是没有限制的,每一个数据库可以有上亿的对象,但是一般基于硬件要求、效率问题一般不超过64个, ...

822
来自专栏大闲人柴毛毛

三分钟掌握“职责链模式”——轻松搞定设计模式

职责链模式的官方定义: 职责链模式使得多个对象都有机会处理请求,从而降低了请求的发送者和接受者之间的耦合关系。这些对象被连成一条链,并沿着这条链传递发送者的请求...

36012
来自专栏光变

1.1 ASM-简介-目的

上面所述的技术可以应用于任何编程语言,只不过在实现上的难易程度取决于编程语言。 对于Java在这种情况下,可以在源码或者字节码中应用。 如果在字节码中应用,显而...

682
来自专栏gaoqin31

设计模式之 策略模式

定义 :封装了一些列算法,它们之前可以相互替换,此模式使得算法的改变,不会影响到使用它们的客户端

913
来自专栏我是攻城师

ElasticSearch里面如何分组后根据sum值排序

2895

扫码关注云+社区