专栏首页编程Redis字符串数据结构的使用场景

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 条评论
登录 后参与评论

相关文章

  • 使用Redis走进误区,该怎么办?

    首先是一个产品线开发人员搭建起了一套庞大的价格存储系统,底层是关系型数据库,只用来处理一些事务性的操作和存放一些基础数据; 在关系型数据库的上面还有一套Mong...

    企鹅号小编
  • 大数据和云计算技术周报:NoSQL特辑

    写在第8期特辑 “大数据” 三个字其实是个marketing语言,从技术角度看,包含范围很广,计算、存储、网络都涉及。为了满足众多同学学习和工作的需要,后面社区...

    企鹅号小编
  • Redis安全加固

    Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上, 如果在没有开启认证的情况下,可以导致任意用户在可以访问目...

    企鹅号小编
  • Redis基础知识点面试手册

    Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。

    后端技术漫谈
  • 面试进阶必问的Redis,看这篇就够了!

    Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。

    乔戈里
  • Oracle·DB LINK 链接到另一个数据库

    本文节选自《Netkiller Database 手札》 第 42 章 数据库链接 Oracle 提供数据库链接功能,实现从当前数据库链接到其他数据库,从当前数...

    netkiller old
  • 基础知识 | 每日一练(1)

    士人有百折不回之真心,才有万变不穷之妙用。立业建功,事事要从实地着脚,若少慕声闻,便成伪果;讲道修德,念念要从虚处立基,若稍计功效,便落尘情。 ...

    闫小林
  • 秒懂Dubbo框架(原理篇)

    在上文 性能基础之常见RPC框架浅析 中我们详细介绍常见的 RPC 框架,本文将详细介绍 Dubbo 框架。

    高楼Zee
  • 分布式Redis的分布式锁 Redlock

    之前自己在用redis来实现分布式锁的时候都是基于单个Redis实例,也就是说Redis本身是有单点故障的,Redis的官方文档介绍了一种"自认为"合理的算法,...

    _淡定_
  • 数据库MySQL-事务

    原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分的(原子的);要么都执行,要么都不执行

    cwl_java

扫码关注云+社区

领取腾讯云代金券