1.String

常用命令: set,get,decr,incr,mget 等。

String数据结构是简单的key-value类型,value其实不仅可以是String,也可以是数字。 常规key-value缓存应用; 常规计数:微博数,粉丝数等。

2.Hash

常用命令: hget,hset,hgetall 等。

hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象,后续操作的时候,你可以直接仅仅修改这个对象中的某个字段的值。 比如我们可以 hash 数据结构来存储用户信息,商品信息等等。比如下面我就用 hash 类型存放了我本人的一些信息:

key=JavaUser293847
value={“id”: 1,“name”: “SnailClimb”,“age”: 22,“location”: “Wuhan, Hubei”
}
3.List

常用命令: lpush,rpush,lpop,rpop,lrange等

list 就是链表,Redis list 的应用场景非常多,也是Redis最重要的数据结构之一,比如微博的关注列表,粉丝列表,消息列表等功能都可以用Redis的 list 结构来实现。

Redis list 的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销。

另外可以通过 lrange 命令,就是从某个元素开始读取多少个元素,可以基于 list 实现分页查询,这个很棒的一个功能,基于 redis 实现简单的高性能分页,可以做类似微博那种下拉不断分页的东西(一页一页的往下走),性能高。

4.Set

常用命令: sadd,spop,smembers,sunion 等

set 对外提供的功能与list类似是一个列表的功能,特殊之处在于 set 是可以自动排重的。

当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。可以基于 set 轻易实现交集、并集、差集的操作。

比如:在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。Redis可以非常方便的实现如共同关注、共同粉丝、共同喜好等功能。这个过程也就是求交集的过程,具体命令如下:

sinterstore key1 key2 key3     将交集存在key1内
5.Sorted Set

常用命令: zadd,zrange,zrem,zcard等

和set相比,sorted set增加了一个权重参数score,使得集合中的元素能够按score进行有序排列。

举例: 在直播系统中,实时排行信息包含直播间在线用户列表,各种礼物排行榜,弹幕消息(可以理解为按消息维度的消息排行榜)等信息,适合使用 Redis 中的 Sorted Set 结构进行存储。

本文转自:
redis常见数据结构以及使用场景分析

【面试经典】redis 常见数据结构以及使用场景分析相关推荐

  1. Redis常见数据结构以及使用场景(微博)分析

    1. String 常用命令: set,get,decr,incr,mget 等. String数据结构是简单的key-value类型,value其实不仅可以是String,也可以是数字. 常规key ...

  2. php两个数组之间去重,php数组去重、魔术方法、redis常用数据结构及应用场景

    一.用函数对数组进行去重的方法 1. arrau_unique函数的作用 移除数组中重复的值. 将值作为字符串进行排序,然后保留 每个值第一次 出现的健名,健名保留不变. 第二个参数可以选择排序方式: ...

  3. Redis的数据结构及应用场景

    2019独角兽企业重金招聘Python工程师标准>>> 一. 谈谈对redis的理解,它的应用场景. Redis是一个key-value存储系统,它支持存储的value类型包括str ...

  4. Redis核心数据结构List应用场景-商品列表、缓存击穿、PV阅读量、抢红包、推送帖子、普通分布式锁、Redis可重入锁与红锁

    List应用场景 Redis之List 一. Redis list命令实战 二.商品列表 高并发的淘宝聚划算实现技术方案 SpringBoot+Redis实现商品列表功能 二.缓存击穿 什么是缓存击穿 ...

  5. hashmap应用场景_Redis 5种数据结构 及使用场景分析

    也当过面试官,面试过不少应聘者,因为是我自己招人自己用,所以我不会看应聘者造火箭的技术有多牛比,只看拧螺丝的手艺瓷不瓷实.毕竟以后是一个整体,拖了大家后腿团队都很难受. 面试的题目一般也不会太难,就像 ...

  6. redis各数据结构的使用场景

    在介绍之前,先说明一点,字符串是redis最基础的数据结构,键都是字符串类型,所有下面讨论的数据结构是针对值value而言的. 字符串 缓存功能:set.get 计数:incr 共享session 限 ...

  7. Redis:redis通用命令;redis常见数据结构;redis客户端;redis的序列化

    一.redis命令 1.redis通用命令 Redis 通用命令是一些 Redis 下可以作用在常用数据结构上的常用命令和一些基础的命令 常见的命令有: keys 查看符合模板的所有key,不建议在生 ...

  8. Redis的基本用法以及场景分析

    Redis(Remote Dictionary Server) 简介: Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - va ...

  9. Redis未授权访问攻击场景分析与防御

    主要从redis未授权访问入手,还原一些黑客的攻击场景,介绍一些常用的攻击方法和安全知识. 0x0 应用介绍 REmote DIctionary Server(Redis) 是一个由Salvatore ...

最新文章

  1. OSPF中virtual-link
  2. 笔记。------数组
  3. 阿里云服务器常见用语
  4. Android NDK开发之旅34 NDK 手把手带你入门直播技术
  5. 数据结构实验之图论九:最小生成树(Prim/Kruskal)
  6. Java Jdbc减少交互提升批量处理性能,到底该如何优化才好?
  7. Codeigniter CRUD代码快速构建
  8. leetcode 500. 键盘行(Java版)
  9. sql-bench mysql_MySQL性能测试(一)——RHEL 7.1, MySQL 5.6.25, sql-bench
  10. perl socket初步
  11. 一级指针易犯错误模型
  12. 数字电视输出标准规范和BT601/BT709/BT2020色域转换方法资料整理
  13. 推挽输出与开漏输出结构和原理详解
  14. 微软,招 Java 了!
  15. 数据压缩_任务五_预测误差均方值推导及最小二乘法
  16. win7打开计算机一片空白,Win7系统打开文件夹查看选项发现一片空白怎么办
  17. pip list outdated pacakge and update
  18. Xilinx SRIO_gen2关于时钟的问题
  19. 数据采集—数据库基础及采集
  20. SQL ifnull、nullif 等函数

热门文章

  1. duilib入门简明教程 -- 前言(1) (转)
  2. 用kotlin方式打开《第一行代码:Android》之开发酷欧天气(2)
  3. JDK+Tomcat+MySql环境配置—linux
  4. java GC的优化
  5. pat1045. Favorite Color Stripe (30)
  6. 有图形化显示,继承WebControl类
  7. 设计模式18_责任链
  8. k-means及变种
  9. cython加密代码python_python通过cython加密代码
  10. 快、准、狠!秒杀Excel的报表工具,十分钟教你做好数据填报