当前位置: 首页 > news >正文

聊聊redis的数据结构的应用

本文主要研究一下redis的数据结构的应用

string

  • 最常用的就是incr操作,比如可以用来维护用户在某个抽奖活动的剩余抽奖次数
  • setnx方法可以用来实现分布式锁

hashmap

  • 可以用来存储session,作为分布式session的一个实现方案
  • 可以用来存储用户购物车,value值存储的key为物品,value为其数量

set

  • set可以用来存储每个标签对应的文章id
  • 也可以用来存储每个文章的已投票用户id,通过add返回值可以判断该值之前是否已经存在

zset

  • zset可以用来存储文章的得票数,使用得票数作为score,使用zset排序得出投票最高的前N篇文章
  • 或者用来存储最近登录的用户id,使用时间作为score,使用zset排序得出最近登录的前N个用户id
  • 也可以存储用户最近浏览的物品,使用时间作为score,使用zset排序得出用户最近浏览的前N个物品
  • 也可以存储物品最近浏览的用户,使用时间作为score,使用zset排序得出最近浏览该物品的前N个用户

list

  • 可以作为简单的消息队列,通过list的lpush以及brpop作为消息队列的入队及消费的操作

hyperloglog

  • 用来粗略统计网站的每日UV

geo(底层使用zset)

  • 使用geo来存储poi信息,比如存储门店的经纬度,之后可以根据半径查询附件的门店信息

bitmaps(底层是string结构)

  • 用来统计用户每日是否登陆过

小结

redis之所以比memcache更为流行主要是由于其强大的数据结构及其提供的操作,丰富的数据结构在特定的场景给我们提供了诸多便利,好好合理利用其数据结构特性,是用好redis的前提。

doc

  • SpringBoot应用之分布式会话
  • redis的GEO实战
  • redis的bitset实战
  • redis的HyperLogLog实战
  • Redis实战SpringBoot版本之购物车服务
  • Redis实战SpringBoot版本之投票服务
  • 聊聊jesque在redis中的数据结构

相关文章:

  • 利用POI和反射实现Excel自动识别实体类导入
  • 随谈10年的技术生涯和技术成长(转)
  • 以太坊开发环境
  • 8.Kafka offset机制
  • Webview独立进程并通过AIDL实现数据通信
  • axios执行原理了解一下!
  • MySQL语句执行分析(二)
  • 大数据争论:批处理与流处理的C位之战
  • 汉诺(hanio)塔问题
  • docker 系列 - Docker CheatSheet | Docker 配置与实践清单 (转载)
  • CentOS下rpm指令和yum指令详解
  • 微软产品大升级:Surface Pro 6、Studio 2、Laptop 2 重磅来袭
  • mysql8.0 Authentication plugin 'caching_sha2_password' cannot be loaded
  • PostgreSQL 函数式索引使用注意 - 暨非immutable函数不适合索引的原因
  • 零基础兴趣或者转行学习Python,我们应该如何入门呢?
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • C++11: atomic 头文件
  • C++类的相互关联
  • C学习-枚举(九)
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Java应用性能调优
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 跨域
  • 理清楚Vue的结构
  • 线上 python http server profile 实践
  • 学习使用ExpressJS 4.0中的新Router
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​configparser --- 配置文件解析器​
  • #14vue3生成表单并跳转到外部地址的方式
  • #define 用法
  • #在 README.md 中生成项目目录结构
  • $NOIp2018$劝退记
  • (26)4.7 字符函数和字符串函数
  • (附源码)ssm码农论坛 毕业设计 231126
  • (转)Sql Server 保留几位小数的两种做法
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET BackgroundWorker
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET 服务 ServiceController
  • .net流程开发平台的一些难点(1)
  • @ComponentScan比较
  • @RequestMapping处理请求异常
  • @RequestParam,@RequestBody和@PathVariable 区别
  • []sim300 GPRS数据收发程序
  • [1127]图形打印 sdutOJ
  • [Android]使用Android打包Unity工程
  • [ArcPy百科]第三节: Geometry信息中的空间参考解析
  • [C++] Windows中字符串函数的种类
  • [CCIE历程]CCIE # 20604
  • [CF543A]/[CF544C]Writing Code
  • [cocos creator]EditBox,editing-return事件,清空输入框
  • [HDU 3555] Bomb [数位DP]
  • [hive小技巧]同一份数据多种处理
  • [iOS开发]事件处理与响应者链