Redis 的数据类型之——对应的应用场景

目录

目录

1.数据类型

1.1 字符串String

1.2 字典——hash

1.3 列表——list

1.4 集合——Set

1.5 有序集合——zSet



1.数据类型


1.1 字符串String

String是最常用的数据类型格式,普通的key-value都归结为这一类,value值不仅可以是String,也可以是数字、集合。类似JAVA中的String类型,可存入数字相互转换,也可以存储json字符串等。

表达式理解Map<String,String>

使用场景:

通过访问用户的次数为依据封锁id,可以将用户的访问次数以String类型记录在redis中,并通过incr操作,每次访问都自增一次。

其他场景:

常用命令:

get,set,incr,decr,mget

1.2 字典——hash

类比JAVA中的Map类型,是一个String类型的field和value的映射表,hash特别适合用于存储对象。

表达式理解:Map<String , Map<String,String>>

应用场景:

例如 用户包含id,name,address等属性,当需要使用redis存放用户信息时,可以使用hash。

        其他场景:可参考 http://t.csdnimg.cn/YZHqk

常用命令:

hget,hset,hgetall

1.3 列表——list

类比JAVA中的ListkedList,有序,可重复的集合

表达式理解:Map<String,List<String>>

应用场景:

最新消息排行;消息队列。利用List的push操作,将任务存储在List中,然后工作线程再用pop操作将任务取出进行执行。

        其他场景:

        1. 朋友圈点赞,要求按照点赞顺序现实点赞好友的信息;

我们可以完整的将这个模型用list实现,发朋友圈的人用key表示,点赞的人为value,点赞操作对应rpush,取消点赞操作可以对应lrem。评论信息可以通过list去查询关系型数据库。

        2. 在一般要求顺序的业务中,一般都用list来实现。

常用命令:

 lpush,rpush,lpop,rpop,lrange,blpop(阻塞版)等;

        

1.4 集合——Set

类比JAVA中的HashSet,存储无序不能重复的数据,Redis本身提供了交集,并集,差集等操作。

表达式理解:Map<String,Set<String>>

应用场景:

set 和 list 比较类似,特殊之处是set可以自动排重,同时还提供了某个成员是否存在于一个set内的接口,这个在list也没有。

        其他场景:

1、标签:比如我们博客网站常常使用到的兴趣标签,把一个个有着相同爱好,关注类似内容的用户利用一个标签把他们进行归并。

2、共同好友功能,共同喜好,或者可以引申到二度好友之类的扩展应用。

3、统计网站的独立IP。利用set集合当中元素唯一性,可以快速实时统计访问网站的独立IP。

常用命令:

sadd,srem,spop,smembers,sunion等;

1.5 有序集合——zSet

类比JAVA中的TreeSet,存储的数据有顺序,常用作排行榜等应用场景;

表达式理解:Map<String,Sort Set<>String>

应用场景:

 使用场景:zset的使用场景与set类似,区别是set不是有序的,而zset可以通过用户额外提供的一个优先级(score即分值)参数来为成员排序,插入后自动排序。

例如:将所有评论按发表时间为score存储,可以方便获取最新发表的评论;全班同学成绩的SortedSets,value可以是同学的学号,而score就可以是其考试得分,这样数据插入集合的,就已经进行了天然的排序。
另外还可以用Sorted Sets来做带权重的队列,比如普通消息的score为1,重要消息的score为2,然后工作线程可以选择按score的倒序来获取工作任务。让重要的任务优先执行。

        其他场景http://t.csdnimg.cn/h7cMd

常用命令
zadd,zrange,zrem,zcard,zcount等

本章博客仅用来记录自己当前学习的笔记,上面图片引用至:http://t.csdnimg.cn/qRzZe博文。

本章博客分享结束,如果能帮助到你,那这篇博文就有意义,感谢你的驻留。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值