人就是很奇怪的动物,很简单的问题往往大家都容易忽略,当我们在使用分布式缓存Redis的时候,一个最简单的问题往往被人忽略,Redis的数据类型以及每种数据类型的使用场景是什么?

是不是觉得这个问题很基础?我也这么觉得。然而根据调查经验发现,至少百分之八十的人答不上这个问题。

基本上,一个合格的程序员,五种类型都会用到。

1.String

这个没啥好说的,最常规的 set/get 操作,Value 可以是 String 也可以是数字。一般做一些复杂的计数功能的缓存。

2.Hash

这里 Value 存放的是结构化的对象,比较方便的就是操作其中的某个字段。

我在做单点登录的时候,就是用这种数据结构存储用户信息,以 CookieId 作为 Key,设置 30 分钟为缓存过期时间,能很好的模拟出类似 Session 的效果。

3.List

使用 List 的数据结构,可以做简单的消息队列的功能。另外还有一个就是,可以利用 lrange 命令,做基于 Redis 的分页功能,性能极佳,用户体验好。

4.Set

因为 Set 堆放的是一堆不重复值的集合。所以可以做全局去重的功能。为什么不用 JVM 自带的 Set 进行去重?

因为我们的系统一般都是集群部署,使用 JVM 自带的 Set,比较麻烦,难道为了一个做一个全局去重,再起一个公共服务,太麻烦了。

另外,就是利用交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能。

5.Sorted Set

Sorted Set多了一个权重参数 Score,集合中的元素能够按 Score 进行排列。

可以做排行榜应用,取 TOP N 操作。Sorted Set 可以用来做延时任务。最后一个应用就是可以做范围查找。

如果你对Redis这一块有什么深入的研究,欢迎来华为云官方论坛发帖,一起探讨一下,也可以到华为云帮助中心,看看我们详细的使用操作说明书吧

转载于:https://blog.51cto.com/14230016/2366722

Redis的数据类型以及每种数据类型的使用场景相关推荐

  1. php支持哪8种数据类型,PHP八种数据类型+使用实例

    PHP的八种数据类型  PHP中变量的数据类型通常不是由程序员设定的,准确的说,是PHP根据该变量使用的上下文在运行时决定的,简单的说就是,我们不需要设定变量的数据类型,PHP会自动识别. 四种标量数 ...

  2. python入门 数据类型(七种数据类型,序列,元素)

    数据类型: 一:数字型 整型: int 1,2,3,0,-1 浮点型: float 1.1, 2.2, -3.1 复数: complex a + bj , 1+2j 二:字符串: str, 字符串的表 ...

  3. RedisUtil - Redis功能介绍,五种数据类型的使用,Spring和Redis的集成

    RedisUtil 介绍  最全的Java操作Redis的工具类,封装了对Redis五种基本类型的各种操作,力求符合Redis的原生操作,使用StringRedisTemplate实现! 快速导航: ...

  4. 3. Python基础:基本数据类型(九种数据类型)

    目录 一.数值类型 1   整数类型 2   浮点数类型 3   复数类型 二.字符串类型 1   字符串类型 2  字节串类型(很少用到) 三.组合类型 1  集合类型:一维数组的集合 2  元组类 ...

  5. Redis的6种数据类型

    Redis 是一种基于内存的数据库,并且提供一定的持久化功能,它是一种键值(key-value)数据库,使用 key 作为索引找到当前缓存的数据,并且返回给程序调用者. 当前的 Redis 支持 6 ...

  6. Redis5种数据类型使用场景梳理

    Redis在我们日常工作中使用的非常频繁,但是很多同学只会使用string类型,那么今天笔者梳理下redis中常用的5种数据类型,分别适用于哪些业务场景和基本操作,让大家以后能够在合适的缓存场景使用合 ...

  7. 【一图流思维导图】Redis设计与实现 包括( 数据类型-数据结构) 及应用场景(登录次数校验,在线人数统计,分布式session,redis分页,判断重复注册,社交领域共同喜好,排行榜 ,topN)

    参照 Redis详解(一)------ redis的简介与安装 Redis详解(二)------ redis的配置文件介绍 Redis详解(三)------ redis的六大数据类型详细用法 Redi ...

  8. Redis支持的5种数据类型

    概述 Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射.键的类型只能为字符串,值支持五种数据类型:字符串.列表.集合.散列表.有序集合. Redi ...

  9. (转) 淘淘商城系列——Redis五种数据类型介绍

    http://blog.csdn.net/yerenyuan_pku/article/details/72855562 Redis支持五种数据类型:string(字符串),hash(哈希),list( ...

最新文章

  1. 织梦dedecms dede plus文件作用介绍及安全设置
  2. 项目范围管理:项目范围管理的概念
  3. static_const和reinterpret_cast
  4. mybatis collection标签_一对多的关系,在MyBatis中如何映射?
  5. Azure 应用服务、虚拟机、Service Fabric 和云服务的比较
  6. 2017级面向对象程序设计 作业二
  7. 微服务下的应用架构设计(COLA架构)
  8. Eclipse-Git
  9. Lync 小技巧-52-Lync 2013-不加域-客户端-2-导入-证书-信任链
  10. 这一次,话筒给你:向自由软件之父 Richard M. Stallman 提问啦!
  11. FastDFS文件上传
  12. 数据安全产品与服务观察
  13. 解决:idea中文变繁体怎么办
  14. 鸿蒙系统专利申请,华为在欧盟申请HarmonyOS专利 或为鸿蒙系统的英文名称
  15. 两个步骤解决 SQL Server 登录报错 通过端口 1433 连接到主机 的 TCP/IP 连接失败。 错误:“connect timed out”
  16. UE4-制作真实场景三维地形
  17. 指针数组和指向指针的指针
  18. 各种机械键盘轴的差别,究竟什么轴好
  19. [分享源码] 美女写真图片采集源码
  20. 配置daocloud加速

热门文章

  1. 扎克伯格又被黑,这次是他的 Pinterest 账号
  2. 概说《TCP/IP详解 卷2》缘起
  3. Tomcat高级部分-使用特定模块和软件反向代理请求到后端tomcat实现负载均衡和session保持...
  4. MyBatis的动态SQL详解
  5. PHPStorm+XDebug进行调试
  6. 通过RobotFramework简单的接口请求示例
  7. strcpy和memcpy的区别(转)
  8. [转]WinXP、Win7脚本自动加域及用户资料迁移
  9. 编码(人类与机器间的语言)中
  10. Bitcoin.com| 比特币现金2019·年度回顾