为了账号安全,请及时绑定邮箱和手机立即绑定

redis各种数据类型分别在什么情况下使用

/ 猿问

redis各种数据类型分别在什么情况下使用

红颜莎娜 2019-03-13 14:09:11

redis各种数据类型分别在什么情况下使用


查看完整描述

2 回答

?
元芳怎么了

1.取最新N个数据的操作
•使用LPUSH latest.comments<ID>命令,向list集合中插入数据

•插入完成后再用LTRIM latest.comments 0 5000命令使其永远只保存最近5000个ID

•然后我们在客户端获取某一页评论时可以用下面的伪代码 redis.lrange("latest.comments",start,start+num_items-1)

ps:如果输入无序则可以使用sorted set用时间作为score,然后lrangebyscore分页读取,按时间排序

2.排行榜应用,取TOP n操作
将你要排序的值设置成sorted set的score,将具体的数据设置成相应的value,每次只需要执行一条ZADD命令即可。

3.需要精准设定过期时间的应用
比如你可以把上面说到的sorted set的score值设置成过期时间的时间戳,那么就可以简单地通过过期时间排序,定时清除过期数据了

4.计数器应用
INCR,DECR命令

5.Uniq操作,获取某段时间所有数据排重值
使用Redis的set数据结构

6.实时系统,反垃圾系统
set

7.Pub/Sub构建实时消息系统
8.构建队列系统
使用list可以构建队列系统,使用sorted set甚至可以构建有优先级的队列系统。

9.缓存

其实没有固定说那个类型一定用在什么场景,你需要了解redis数据类型的特点,并利用其特点来满足你的场景需要。
redis有字符串类型、列表、哈希表(散列表)、集合、有序集合这5种,各有不同。各有特点,列表经常用作队列用作需要保持顺序的场景,散列表可以去除重复值而且可以设置field属性,集合可以去除重复而且支持集合操作适合tag系统以及关注人列表,有序集合在集合基础上增加了排序。



查看完整回答
反对 回复 2019-03-19
  • 2 回答
  • 0 关注
  • 287 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信