Redis 常用数据结构与使用场景

简介: 数据结构

数据结构2105804-20221109074226523-795080696.png


使用场景


String

  • 计数器


  • INCR article:readcount: {文章 id}
  • GET article:readcount: {文章 id}


  • Web 集群 session 共享


  • spring session + Redis 实现 session 共享


  • 分布式系统全局序列号


  • INCRBY orderId 1000


Hash

  • 对象缓存


  • HMSET user 1:name gd 1:balance 1888


  • 购物车


  • 结构:以用户 id 为 key,商品 id 为 field,商品数量为 value


购物车操作:

  • 添加商品 hset cart:1001 10088 1
  • 增加数量 hincrby cart:1001 10088 1
  • 商品总数 hlen cart:1001
  • 删除商品 hdel cart:1001 10088
  • 获取购物车所有商品 hgetall cart:1001


List

  • 微博和微信公号消息流


场景: 张三关注了李四, 王五, 张三发微博,消息 ID 为 10018:

  • LPUSH msg:{zs-ID} 10018


王五发微博,ID 为 10086:

  • LPUSH msg:{zs-消息ID} 10086
  • LRANGE msg:{zs-ID} 0 4


set

  • 微信抽奖小程序
  • 点击参与抽奖加入集合: SADD key {userlD}
  • 查看参与抽奖所有用户: SMEMBERS key
  • 抽取 count 名中奖者: SRANDMEMBER key [count] / SPOP key [count]
  • 共同关注的人


Zset

  • 实现排行榜


bitmap

  • 签到


geo

  • 附近的⼈
目录
相关文章
|
10月前
|
存储 缓存 NoSQL
【📕分布式锁通关指南 12】源码剖析redisson如何利用Redis数据结构实现Semaphore和CountDownLatch
本文解析 Redisson 如何通过 Redis 实现分布式信号量(RSemaphore)与倒数闩(RCountDownLatch),利用 Lua 脚本与原子操作保障分布式环境下的同步控制,帮助开发者更好地理解其原理与应用。
794 6
|
9月前
|
消息中间件 缓存 NoSQL
Redis各类数据结构详细介绍及其在Go语言Gin框架下实践应用
这只是利用Go语言和Gin框架与Redis交互最基础部分展示;根据具体业务需求可能需要更复杂查询、事务处理或订阅发布功能实现更多高级特性应用场景。
516 86
|
9月前
|
存储 消息中间件 NoSQL
Redis数据结构:别小看这5把“瑞士军刀”,用好了性能飙升!
Redis提供5种基础数据结构及多种高级结构,如String、Hash、List、Set、ZSet,底层通过SDS、跳表等实现高效操作。灵活运用可解决缓存、计数、消息队列、排行榜等问题,结合Bitmap、HyperLogLog、GEO更可应对签到、UV统计、地理位置等场景,是高性能应用的核心利器。
|
9月前
|
存储 缓存 NoSQL
Redis基础命令与数据结构概览
Redis是一个功能强大的键值存储系统,提供了丰富的数据结构以及相应的操作命令来满足现代应用程序对于高速读写和灵活数据处理的需求。通过掌握这些基础命令,开发者能够高效地对Redis进行操作,实现数据存储和管理的高性能方案。
292 12
|
9月前
|
存储 消息中间件 NoSQL
【Redis】常用数据结构之List篇:从常用命令到典型使用场景
本文将系统探讨 Redis List 的核心特性、完整命令体系、底层存储实现以及典型实践场景,为读者构建从理论到应用的完整认知框架,助力开发者在实际业务中高效运用这一数据结构解决问题。
|
9月前
|
存储 缓存 NoSQL
【Redis】 常用数据结构之String篇:从SET/GET到INCR的超全教程
无论是需要快速缓存用户信息,还是实现高并发场景下的精准计数,深入理解String的特性与最佳实践,都是提升Redis使用效率的关键。接下来,让我们从基础命令开始,逐步揭开String数据结构的神秘面纱。
|
存储 NoSQL 算法
Redis设计与实现——数据结构与对象
Redis 是一个高性能的键值存储系统,其数据结构设计精妙且高效。主要包括以下几种核心数据结构:SDS、链表、字典、跳跃表、整数集合、压缩列表。此外,Redis 对象通过类型和编码方式动态转换,优化内存使用,并支持引用计数、共享对象和淘汰策略(如 LRU/LFU)。这些特性共同确保 Redis 在性能与灵活性之间的平衡。
522 12
|
存储 消息中间件 NoSQL
Redis 数据结构与对象
【10月更文挑战第15天】在实际应用中,需要根据具体的业务需求和数据特点来选择合适的数据结构,并合理地设计数据模型,以充分发挥 Redis 的优势。
519 161
|
存储 NoSQL 算法
「Redis」数据结构与对象
Redis数据结构与对象介绍
211 0
|
NoSQL 算法 Java
Redis进阶 - 数据结构:对象机制详解,一文深入底层分析
我们在前文已经阐述了Redis 5种基础数据类型详解,分别是字符串(string)、列表(list)、哈希(hash)、集合(set)、有序集合(zset),以及5.0版本中Redis Stream结构详解;那么这些基础类型的底层是如何实现的呢?Redis的每种对象其实都由对象结构(redisObject) 与 对应编码的数据结构组合而成, 本文主要介绍对象结构(redisObject) 部分。
Redis进阶 - 数据结构:对象机制详解,一文深入底层分析

热门文章

最新文章