Redis五种数据类型的应用场景

纵然是瞬间 提交于 2020-03-02 11:14:57

Redis五种数据类型的应用场景

String应用场景

string类型是二进制安全的,redis的string可以包含任何数据,如图像、序列化对象。一个键最多能存储512MB。==二进制安全是指,在传输数据的时候,能保证二进制数据的信息安全,也就是不会被篡改、破译;如果被攻击,能够及时检测出来

1.String通常用于保存单个字符串或JSON字符串存储数据

2.因为String是二进制安全的,所以可以把保密性要求高的图片文件内容作为字符串来存储

3.计数器:常规key-value缓存应用,如微博数、粉丝数,INCR本身就具有原子性特性,所以不会有线程安全问题。

hash应用场景

Redis hash是一个string类型的field和value的映射表,hash特别适用于存储对象。每个hash可以存储232-1键值对。可以看成KEY和VALUE的MAP容器。相比于JSON,hash占用很少的内存空间。Hash的应用场景,通常用来存储一个用户信息的对象数据。

1、相比于存储对象的string类型的json串,json串修改单个属性需要将整个值取出来。而hash不需要。

2、相比于多个key-value存储对象,hash节省了很多内存空间

3、如果hash的属性值被删除完,那么hash的key也会被redis删除

list应用场景

1.对数据大的集合数据删减,如列表显示、关注列表、留言评价…分页、热点新闻等

2、任务队列,list通常用来实现一个消息队列,而且可以确保先后顺序,不必像MySql那样通过order by来排序

Set应用场景(唯一、无序)

对两个集合间的数据进行交集、并集、差集运算

1、以非常方便的实现如共同关注、共同喜好、二度好友等功能。对上面的所有集合操作,你还可以使用不同的命令选择将结果返回给客户端还是存储到一个新的集合中

2、利用唯一性,可以统计访问网站的所有独立 IP

SortedSet应用场景(有序且不重复)

常用于排行榜:

1、如推特可以以发表时间作为score来存储

2、存储成绩

3、还可以用zset来做带权重的队列,让重要的任务先执行

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!