• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

Redis使用总结-Redis中的数据类型

开发技术 开发技术 2周前 (04-08) 5次浏览

String

  • String是Redis基本数据类型,一个key对应一个String
  • String 类型是二进制安全的。意思是 redis 的 string 任意格式的二进制数据。比如jpg图片或者序列化的对象
  • String 类型的值最大能存储 512M

使用场景

  • 热点数据缓存
  • 利用redis的INCR、DECR等指令来实现原子计数的效果,用来实现业务上的统计计数需求。
  • 分布式sessionkey系统。 redis可以很方便的设置sessionkey的自动过期时间,分布式系统的各个node可以统一的进行session的管理。
  • 分布式锁。使用SETNX命令当不存在才添加,可以很好的来实现分布式锁。

Hash

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。通过命名很清楚的之后Hash这种数据类型时使用了哈希表作为底层实现,关于什么是哈希,什么是哈希表可以自行百度,后续有时间可以单独开一篇来详细分析Redis hash的实现。

使用场景

适合存储对象的场景

List

Redis List是简单的字符串列表,数据结构是双向链表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),也就是兼有栈和队列的特性。因为是链表,所以查找的复杂度就是O(n)了,但是考虑到常用的指令都是在列头和列尾操作,所以这种数据结构才是最适合的。

使用场景

作为消息队列

Set

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

使用场景

  • 需要去重情景下的列表,也可以利用命令Sismember 判断member是否在集合中。
  • 需要对多个集合进行交集,差集,并集操作的时候,比如可以求出共同关注,共同喜爱之类的功能。

ZSet

Redis sorted set和Set一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序
有序集合的成员是唯一的,但分数(score)却可以重复。

使用场景

  • 排行榜
  • 有序不重复的集合
  • 可以将权重作为score来进行存储,按照权重来进行排序或者优先操作

程序员灯塔
转载请注明原文链接:Redis使用总结-Redis中的数据类型
喜欢 (0)