对redis来说,所有的key(键)都是字符串,所谓的5种数据结构是指针对value而言

1、Redis五种数据结构如下:

数据结构类型 说明 使用场景 常用方法 其他链接
String字符串类型

1、redis中最基本的数据类型,一个key对应一个value。

2、是二进制安全的,意思是 redis 的 string 可以包含任何数据。如数字,字符串,jpg图片或者序列化的对象。

1.缓存: 经典使用场景,把常用信息,字符串,图片或者视频等信息放到redis中,redis作为缓存层,mysql做持久化层,降低mysql的读写压力。

2.计数器:redis是单线程模型,一个命令执行完才会执行下一个,同时数据可以一步落地到其他的数据源。

3.session:常见方案spring session + redis实现session共享,

get 、 set 、 del 、 incr、 decr  

HashTables (哈希)

是一个Mapmap,指值本身又是一种键值对结构,如 value={{field1,value1},......fieldN,valueN}} 1.缓存: 能直观,相比string更节省空间的维护缓存信息,如用户信息,视频信息等。

所有hash的命令都是h开头的:

hget  、hset 、  hdel 等

 
LinkedLists(链表) List 说白了就是链表(redis 使用双端链表实现的 List),是有序的,value可以重复,可以通过下标取出对应的value值,左右两边都能进行插入和删除数据。 1.timeline:例如微博的时间轴,有人发布微博,用lpush加入时间轴,展示新的列表信息。

使用列表的技巧

  • lpush+lpop=Stack(栈)
  • lpush+rpop=Queue(队列)
  • lpush+ltrim=Capped Collection(有限集合)
  • lpush+brpop=Message Queue(消息队列)
 
Sets(集合)

用来保存多个字符串的元素,但和列表不同的是集合中

1. 不允许有重复的元素

2.集合中的元素是无序的,不能通过索引下标获取元素

3.支持集合间的操作,可以取多个集合取交集、并集、差集。

1.标签(tag),给用户添加标签,或者用户给消息添加标签,这样有同一标签或者类似标签的可以给推荐关注的事或者关注的人。

2.点赞,或点踩,收藏等,可以放到set中实现

命令都是以s开头的:

sset 、srem、scard、smembers、sismember

1、set类型的应用场景 —— Redis实战经验

Zset  有序集合

1.Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

2.不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

3.有序集合的成员是唯一的,但分数(score)却可以重复。

1.排行榜:有序集合经典使用场景。例如小说视频等网站需要对用户上传的小说视频做排行榜,榜单可以按照用户关注数,更新时间,字数等打分,做排行。

有序集合的命令都是 以  z  开头:

zadd 、 zrange、 zscore

1、Redis 有序集合(sorted set)

2、使用Redis有序集合实现投票排行榜系统

Redis五种数据结构相关推荐

  1. Redis五种数据结构应用场景

    文章目录 前言 二.字符串String 2.1.常用操作 2.2.应用场景 2.2.1.单值缓存(最常用) 2.2.2.对象缓存 2.2.3.分布式锁 2.2.4.计数器 三.哈希hash 3.1.常 ...

  2. 字符动图_图解redis五种数据结构底层实现(动图哦)

    redis有五种基本数据结构:字符串.hash.set.zset.list.但是你知道构成这五种结构的底层数据结构是怎样的吗?今天我们来花费五分钟的时间了解一下.(目前redis版本为3.0.6) 动 ...

  3. 真正说透Redis五种数据结构

    系列文章目录 真正说透Redis五种数据结构 Redis持久化之RDB+AOF+混合持久化实战演练 Redis高可用之主从架构 文章目录 系列文章目录 前言 一.5种基本数据结构 二.字符串Strin ...

  4. 硬核资源!Redis 五种数据结构以及三种高级数据结构解析(详解)

    上一篇分享的是<深入理解JVM>,这篇给大家分享<Redis 五种数据结构以及三种高级数据结构解析>. 前言 在 Redis 最重要最基础就属 它丰富的数据结构了,Redis ...

  5. Redis五种数据结构及其使用场景

    Redis五种数据结构及其使用场景 先有个概念,redis 数据库其实就是一个大的 map,它容纳了所有的 key, key 都是 string 类型,而 value 则有 string, list, ...

  6. 图解redis五种数据结构底层实现

    redis有五种基本数据结构:字符串.hash.set.zset.list.但是你知道构成这五种结构的底层数据结构是怎样的吗?今天我们来花费五分钟的时间了解一下.(目前redis版本为3.0.6) 动 ...

  7. 万字长文的Redis五种数据结构详解(理论+实战),建议收藏。

    本文脑图 前言 Redis是基于c语言编写的开源非关系型内存数据库,可以用作数据库.缓存.消息中间件,这么优秀的东西一定要一点一点的吃透它. 关于Redis的文章之前也写过三篇,阅读量和读者的反映都还 ...

  8. Redis五种数据结构详解

    Redis是基于c语言编写的开源非关系型内存数据库,可以用作数据库.缓存.消息中间件,这么优秀的东西一定要一点一点的吃透它. Redis的五种数据结构包括以下五种: String:字符串类型 List ...

  9. 浅谈Redis五种数据结构的底层原理

    概念 Redis作为一个开源的用C编写的非关系型数据库,基于优秀的CRUD效率,常用于软件系统的缓存,其本身提供了以下五种数据格式: string:字符串 list:列表 hash:散列表 set:无 ...

最新文章

  1. 嬴彻与东风商用车完成L3重卡A样车验收,加速自动驾驶产品化
  2. 【错误记录】Android Studio 编译时 Kotlin 代码编译报错 ( 升级支持库时处理 @NonNull 参数 )
  3. 【FFmpeg】使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )
  4. Openssl 之大数运算函数 BN
  5. git 常用commands(转)
  6. 如何在Exchange中处理不能发送的信息
  7. 3. 机器学习中为什么需要梯度下降?梯度下降算法缺点?_一起学习西瓜书2
  8. NLP—1.自然语言处理的基础任务与应用
  9. mysql 数据字典导出_MySQL导出数据字典
  10. android screenshot流程,APP中,Screenshot的设计要领和各发布渠道的要求
  11. Nginx 代理缓存
  12. quick-cocos2d-x踩坑记
  13. 滑块验证位移识别/识别率95%+
  14. python制作数据增长动图_手把手教你做一个python+matplotlib的炫酷的数据可视化动图...
  15. Android Study
  16. oracle 监听 宕机,由重启引起的Oracle RAC节点宕机分析及追根溯源
  17. ArcGIS案例学习笔记2_1
  18. [obs-studio]win32-test项目成功运行
  19. 写完博客发现无法用百度搜到?为什么百度搜索资源平台的“链接提交”无法提交链接?教你如何让百度快速收录自己的博客?
  20. 引脚、串口和端口的区别与联系

热门文章

  1. Delphi2009下编译提示“无法找到“Excel_TLB”
  2. JAVA中深拷贝与浅拷贝(在网上找到的) 希望对于理解深拷贝与浅拷贝有帮助...
  3. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'test'
  4. python-1day
  5. BitmapUtil【缩放bitmap以及将bitmap保存成图片到SD卡中】
  6. 洛谷P1396营救(最小生成树)
  7. 088实战 项目技术框架
  8. ABP框架详解(三)Domain
  9. ./dmitry -p ip或者域名 -f -b
  10. ExtJS 4.1有什么值得期待?