首页 > 其他 > 详细

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

时间:2021-04-14 15:46:59      阅读:16      评论:0      收藏:0      [点我收藏+]

一、什么是Redis

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。

与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。另外,Redis 也经常用来做分布式锁。除此之外,Redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。

二、Redis的五种数据类型

技术分享图片

1、String

非常常用的类型,搞过Redis的应该都用过。

单值缓存:即简单键值对数据缓存;有一些数据需要共享,比如在没有统一授权中心的多个系统中,可以通过相同的算法共享token字符串进行各系统统一认证;

技术分享图片

对象缓存:比如之前都喜欢用Session保存用户数据,然后在每个网页中进行使用,但对于分布式或是集群系统就需要做Session共享了,一般会将用户信息转为json字符串进行缓存;

技术分享图片

以上只是用于共享数据,但其实经常会用于缓存一些高频率访问但不频繁修改的数据上。比如采集设备数据,需要实时核对设备是否正确,当采集比较频繁,如传感器数据时,核对的设备信息不可能实时从数据库中查,需将其进行缓存,减轻数据库压力的同时,也能提高效率。

文章阅读数或网页浏览数统计:常见博客文章或是公众号都有阅读数统计,或是自己开发的站点需要统计页面访问量,用Redis也可以轻松实现,换其他方式估计得费点心思。

技术分享图片

2、Hash

适用于存储对象。如商品详情,个人信息详情,新闻详情等。

对象缓存:string也能做,为什么还要用hash?,string一般用于简单对象的缓存,比如字段不多,记录也不多的情况,便于序列化解析。

如:多个主机,每个主机中有不同的属性,每个属性有对应的值。

技术分享图片

3、List

list是有序的,比较适合存储一些有序且数据相对固定的数据。如省市区表、字典表等。

模拟消息推送:

技术分享图片

4、Set

无序集合,不可重复。set最牛的地方在于,可以对两个set提供交集、并集、差集操作。

抽奖逻辑:抽奖小伙伴们不陌生了吧,不管是公司年会抽奖,还是公众号参与抽奖,应该几乎不用亲手抓阄了吧。都是通过程序,把人员都放在一起,然后随机抽取,set很符合这种应用场景,如下:

技术分享图片

共同好友统计:

技术分享图片

5、Zset

zset的命令一般以z开头,里面元素是有序不可重复的。和Set用法基本一样,只是每个元素中多了一个分值,用于元素排序。

用于排名:比如考试成绩的排名,新闻热度排行榜,直播打赏排名等。

技术分享图片

 

三、什么是Redis持久化

持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。

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

原文:https://www.cnblogs.com/Neonuu/p/14656660.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!