什么是Redis?
原创大约 2 分钟
MySQL固然强大,但在某些需求场景下却难于使用。
例如,如果用户通过验证码登录,那么单独创建一张存储手机号和验证码的表,然后用完之后或者隔一段时间验证码失效之后再把它删除。
再比如,在社交类型的应用中,最重要的两类数据就是FOLLOW
和BE FOLLOWED
,它们本质上就是一个用户名加上一个不断变化的粉丝数量而已。
类似这种手机号 + 验证码
和用户名 + 粉丝数量
的数据,在软件开发中有一个专有名词,称之为键值对
,意思就是一个键(用key表示)
跟着一个数值(用value表示)
,形式是:key:value
。
对于手机号的登录验证来说,每天可以产生无数个这样的键值对。
13012345678:123456;
13112345678:123456;
13287654321:654321;
......
对于某个用户来说,TA的粉丝数量也是不断变化着的。
user9527:9528;
// 涨粉了
user9527:9529;
// 掉粉了
user9527:7788;
......
类似这种应用场景,用MySQL不但麻烦,而且这种极为频繁的数据插入、更新和删除操作,也会对MySQL的性能造成很大的影响,进而影响其他的业务功能,例如用户下单或支付。
这种非核心业务拖累核心业务的情况,在任何公司都是不允许发生的。
所以就诞生了Redis这么一个专门用来存储键值对(key-value,有时也简写为kv)
的NoSQL系统。
NoSQL是Not Only SQL
的简写,意思是不仅仅是SQL
,它是一种有别于传统关系型数据库(RDBMS)的新型数据存储技术。
它的很多特性都和RDBMS不同。
例如,对于验证码应用来说,它不需要手动去删除里面存储的大量验证码,而是可以设定一个过期时间,实现自动删除失效数据。
这就极大地减轻了MySQL的负担,现在,它只需要关注核心业务数据的读取和存储就行了。
感谢支持
更多内容,请移步《超级个体》。