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

在Redis中使用最多的就是集合了,举个例子,如下场景:
签到系统中,一天对应一系列的用户签到记录。
电商系统中,一个商品对应一系列的评论。
交友系统中,某个用户的一系列的好友。
Redis中集合的特点无非是一个Key
对应一系列的数据, 但是数据的作用往往是为了统计的,比如:
交友系统中,需要统计每天的新增好友,以及双方的共同好友。
电商系统中,需要统计评论列表中的最新评论。
签到系统中,需要统计连续一个月的签到的用户数量。
大型互联网应用中,数据量是巨大的,少说百万,千万,甚至是一个亿,比如电商巨头淘宝,交友巨头微信、微博;办公巨头钉钉等,哪一个的用户不是上亿?
只有针对不同场景,选择合适的集合,统计才能更方便。

【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种:
int:8个字节的长整型。
embstr:小于等于39个字节的字符串。
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的知识?
看视频啊~视频中有你想知道的