redis各类型及应用场景

来源:互联网 发布:阿里云ecs硬盘扩容 编辑:程序博客网 时间:2024/06/06 00:01

redis类型:
字符串(string)
哈希(hash)
列表(list)
集合(set)
有序集合(sorted set)

适用场景:
1.string
redis的string类型简单的key-value,value值类型可以为数字也可以为字符串,对于数值而言方便增减,对于字符串方便追加和截取出某一段。
适用于常规计数。
2. hash
redis的hash类型是一个string类型的field和value的映射表,hash特别适合用于存储对象。
hash对于对象的存储是无序的。
适用于存储部分变更数据。
3.list
redis的list类型是简单的字符串列表,按照插入顺序排序。
Redis的list是每个子元素都是String类型的双向链表,可以通过push和pop操作从列表的头部或者尾部添加或者删除元素。
List既可以作为栈,也可以作为队列。
适用于轻松地实现最新消息排行等功能,消息队列系统(日志收集器)
4.set
Redis的Set是string类型的无序集合.
比如在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。
Redis还为集合提供了求交集、并集、差集等操作,可以非常方便的实现如共同关注、共同喜好、二度好友等功能,对上面的所有集合操作,你还可以使用不同的命令选择将结果返回给客户端还是存集到一个新的集合中。
获取某段时间所有数据去重值(这个使用Redis的set数据结构最合适了,只需要不断地将数据往set中扔就行了,set意为集合,所以会自动排重)。
5.sorted set
和Sets相比,Sorted Sets增加了一个权重参数score,使得集合中的元素能够按score进行有序排列,
比如一个存储全班同学成绩的Sorted Sets,其集合value可以是同学的学号,而score就可以是其考试得分,这样在数据插入集合的时候,就已经进行了天然的排序。可以用Sorted Sets来做带权重的队列,比如普通消息的score为1,重要消息的score为2,然后工作线程可以选择按score的倒序来获取工作任务。让重要的任务优先执行。

使用场景
(1) 排行榜应用,取TOP N操作
(2) 需要精准设定过期时间的应用
比如你可以把上面说到的sorted set的score值设置成过期时间的时间戳,那么就可以简单地通过过期时间排序,定时清除过期数据了,不仅是清除Redis中的过期数据,你完全可以把Redis里这个过期时间当成是对数据库中数据的索引,用Redis来找出哪些数据需要过期删除,然后再精准地从数据库中删除相应的记录
(3) 范围查找

0 0
原创粉丝点击