一文了解Redis

·  阅读 1050

启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天,点击查看活动详情

之前学习使用数据库的时候最先接触的是MySQL数据库,当然他的好处很多很多,这里就不一一列举了,但是,随着对数据库性能要求越来越高,比如缓存需求,队列需求,点赞,这些功能对存储的效率越来越严格,就接触到了redis,所以来整理一下自己掌握的redis的知识点,也同时进行查漏补缺一下。

Redis认识

介绍redis

和大部分的学习思路类似,先聊聊redis的认识吧,用一句话来描述redis:

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value的nosql数据库,并提供多种语言的API。

基于内存数据库

首先一个很明确的道理,计算机基于内存的操作速率要比基于硬盘的操作效率高很多,熟悉mysql数据库的小伙伴都有感触,mysql为了解决磁盘的读写同步问题,设计了n多种机制,比如:LRU算法,缓存池等等,Redis是基于内存的数据库(也可以持久化),自然读写效率要比磁盘存储的数据库高出很多,Redis读的速度能达到110000次/s,写的速度能达到81000次/s。

Key-Value数据库

Redis存储数据并没有选择行列的二维表,而是key-value格式,并且value可以支持:字符串(strings),散列(hashes),列表(list),集合(set),有序集合(sorted set)五种格式,可以更加灵活的存储哪些复杂的数据结构。

Nosql数据库

nosql数据库的解释一直存在两种:

第一种是:非关系型数据库,对比关系型数据库来理解,它们不保证关系数据的ACID(原子性,一致性,隔离性,持久性)特性,数据之间的关系去掉最直接的好处自然就是扩展性变好了,更加符合WEB2.0对复杂的数据格式的要求了。

第二种是:no only sql,不只是数据库。

所以基于上面的介绍,我们至少知道了redis的优点:性能高,丰富的数据类型,更加符合WEB2.0的需求。

使用场景

1、缓存,其实好多人使用redis并不是存放网站的业务数据,更多的是做缓存,比如存放报表,热点信息。

2、共享,Redis是分布式的独立服务,所以可以实现多个应用之间的数据共享,比如:单点登录的session就可以用redis单独存储。

3、计数,由于redis的性能,所以可以支持实时性数据先存放到redis,然后适时同步到mysql或者其他关系型数据库当中,比如:点赞计数,访问限流等。

当然还有很多的使用场景,在之后的总结当中遇到还会再聊。

分类:
后端
收藏成功!
已添加到「」, 点击更改