redis的简单介绍及使用场景

103 阅读2分钟
这是我参与「第五届青训营」伴学笔记创作活动的第 9 天

redis的简单介绍及使用场景

redis简介

redis是开源的一个高性能的key-value数据库,我们也称之为nosql数据库即非关系型数据库,它有极高的性能优势,能够支持的读的速度是110000次每秒,写的速度是81000次每秒。并且它支持string,lists,hashes,sets以及ordered sets等多种数据类型。它的所有操作都是原子性的因此它也支持事务操作。

redis的持久化

redis的数据一般是存储在内存当中,因此在物理设备突然宕机时redis的数据就会丢失,但是redis也做出了相应的策略,就是可以将数据持久化,也就是将内存中的数据存在磁盘中,redis将增量数据保存在AOF文件当中,全量数据保存在RDB当中,你写入的同时redis就会将数据持久化。你可以使用SAVE命令将数据进行持久化,该命令会创建一个rdb文件,同时你也可以将该文件移动到redis的安装目录启动redis就可以对数据进行恢复。

redis使用场景

缓存

因为redis有极高的性能优势,所以说我们可以用redis做缓存,将热数据存到redis中,当大量用户需要去拿到同一份数据时就可以体现出redis的优势,不用去数据库进行查询而直接通过redis去拿到数据,会快很多,但是也存在一定的问题,比如说数据的一致性。同一份热数据我进行了数据更新但是redis并没有更新,这就导致了数据的不一致,因此我们需要对数据库的binlog进行监听当数据修改要让redis进行及时更新保证数据的一致性

分布式锁

在分布式服务中redis也起了很大作用,当分布式架构中多个服务需要共享同一份资源,为了保证正确性我们通常会对各个线程进行加锁,因为redis有单线程执行命令和setnx只有未设置过才能执行成功的特性所有可以用来做分布式锁。