欢迎光临散文网 会员登陆 & 注册

你对Redis有多了解?

2021-03-05 17:32 作者:自学Python的小姐姐呀  | 我要投稿

不知你大规模的用过Redis吗?还是仅仅作为缓存的工具了?

在Redis中使用最多的就是集合了,举个例子,如下场景:


1.签到系统中,一天对应一系列的用户签到记录。

2.电商系统中,一个商品对应一系列的评论。

3.交友系统中,某个用户的一系列的好友。


Redis中集合的特点无非是一个Key对应一系列的数据, 但是数据的作用往往是为了统计的,比如:


1.交友系统中,需要统计每天的新增好友,以及双方的共同好友。

2.电商系统中,需要统计评论列表中的最新评论。

3.签到系统中,需要统计连续一个月的签到的用户数量。


大型互联网应用中,数据量是巨大的,少说百万,千万,甚至是一个亿,比如电商巨头淘宝,交友巨头微信、微博;办公巨头钉钉等,哪一个的用户不是上亿?


只有针对不同场景,选择合适的集合,统计才能更方便。

【redis是什么】


redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。

redis的官网地址,非常好记,是redis.io。(特意查了一下,域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地)

目前,Vmware在自助者redis项目的开发和维护。


开门见山,先看照片:

是不是出乎了你的意料,嗯,高手总会有些地方与众不同的。

这位便是redis的作者,他叫Salvatore Sanfilippo,来自意大利的西西里岛,现在居住在卡塔尼亚。目前供职于Pivotal公司。

他使用的网名是antirez,如果你有兴趣,可以去他的博客逛逛,地址是antirez.com,当人也可以去follow他的github,地址是 http://github.com/antirez。



Redis是一种基于键值对的NoSQL数据库,它的值主要由string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)五种基本数据结构构成,除此之外还支持一些其他的数据结构和算法。key都是由字符串构成的,那么这五种数据结构的使用场景有哪些?一起来看看!


字符串类型是Redis最基础的数据结构,字符串类型可以是JSON、XML甚至是二进制的图片等数据,但是最大值不能超过512MB。

1.1 内部编码

Redis会根据当前值的类型和长度决定使用哪种内部编码来实现。

字符串类型的内部编码有3种:

1.int:8个字节的长整型。

2.embstr:小于等于39个字节的字符串。

3.raw:大于39个字节的字符串。

1.2 使用场景

1.2.1 缓存

在web服务中,使用MySQL作为数据库,Redis作为缓存。由于Redis具有支撑高并发的特性,通常能起到加速读写和降低后端压力的作用。web端的大多数请求都是从Redis中获取的数据,如果Redis中没有需要的数据,则会从MySQL中去获取,并将获取到的数据写入redis。

1.2.2 计数

Redis中有一个字符串相关的命令incr key,incr命令对值做自增操作,返回结果分为以下三种情况:

值不是整数,返回错误

值是整数,返回自增后的结果

key不存在,默认键为0,返回1

比如文章的阅读量,视频的播放量等等都会使用redis来计数,每播放一次,对应的播放量就会加1,同时将这些数据异步存储到数据库中达到持久化的目的。

1.2.3 共享Session

在分布式系统中,用户的每次请求会访问到不同的服务器,这就会导致session不同步的问题,假如一个用来获取用户信息的请求落在A服务器上,获取到用户信息后存入session。下一个请求落在B服务器上,想要从session中获取用户信息就不能正常获取了,因为用户信息的session在服务器A上,为了解决这个问题,使用redis集中管理这些session,将session存入redis,使用的时候直接从redis中获取就可以了。

1.2.4 限速

为了安全考虑,有些网站会对IP进行限制,限制同一IP在一定时间内访问次数不能超过n次。


综上所述就是Redis部分知识点,

什么?怎么样才能知道更多的Redis的知识?

看视频啊~视频中有你想知道的


你对Redis有多了解?的评论 (共 条)

分享到微博请遵守国家法律