Redis

作者: Orange_粒橘 | 来源:发表于2021-07-21 20:58 被阅读0次

    为什么要使用redis做缓存

    首先,reids也是数据库的一种,它属于NoSql数据库,他的数据是存储在内存中的,而数据库是存在磁盘中的,redis的读写速度是比mysql快的。当我们第一次从数据库读取数据的时候会很慢,这样子不利于用户的体验,那我们将数据缓存到redis中,下一次读取数据的时候就提高了效率,也提高了用户体验。如果数据库中的数据进行了操作,那么我们也进行同步缓存到redis中就可以了如果高并发的话,redis能接收的请求量要比mysql的大,为了降低数据库的访问量,我们可以将一些数据缓存到redis中,避免了很多请求都去访问数据库

    redis 和 memcached 的区别

    ①redis支持丰富的数据类型,memcached只支持简单的数据类型②redis是属于单线程的,memcached是是属于多线程的③redis支持数据持久化,也就是将存储在内存中的数据存储到磁盘中,但是memcached的数据是存储在内存中的④redis有原生的集群操作,而memcached没有

    redis的常见数据结构以及使用场景

    string:存储数字/Stringhash:存储对象,如用户信息,商品信息list:存储列表,如:粉丝列表,消息列表,有一个lrange命令可以实现分页查询(高性能)set: 会进行自动排重, 如:共同好友,共同爱好sorted set: 有序排序,如:直播礼物榜

    redis设置过期时间

    我们可以在往redis中存储数据的时候就设置该数据的存活时间redis会有两个删除方式:①定期删除:定期从设置了存活时间的数据随机抽取出来,判断是否过期,过期就删除②懒惰删除:定期删除的话还有很多过期的key没有被删除,需要系统去查一下那个key,才会被redis删除

    redis的淘汰机制

    ①从设置了存活时间的数据集中随机淘汰②从设置了存活时间的数据集中选取最近很少用的进行淘汰③从设置了存活时间的数据集中淘汰过期时间最近的数据④从数据集中随机选取数据进行淘汰⑤当内存满了的时候,有新的数据加入时报错⑥当内存满了的时候,有新的数据加入时,删除最近少用的key的数据

    redis的持久化机制

    redis的持久化方式有两种,一种是快照持久化,就是每隔一段时间就会创建一个快照来存储内存中的数据,快照创建之后我们可以将它保留在原地以便于服务器重启之后重新恢复数据,他是redis默认的持久化机制另一种是AOF持久化,redis每一次进行数据变化的时候都会保存到AOF文件中,redis的AOF是不默认开启的,AOF持久化比快照持久化的实时性要强

    Redis支持事务吗?如果支持他是怎么操作的?

    Redis是支持事务的,我们可以通过ecex,watch等命令来实现事务操作

    redis的雪崩,穿透,击穿知道吗,怎么解决

    缓存雪崩就是同一时间缓存大量数据到期,导致所有的请求都到数据库中去,数据库一下子承受不住那么大的压力,崩掉了解决方法: 做好redis的集群,使用本地缓存,降级限流的方式保证数据库的正常运行,雪崩之后我们可以使用redis的缓存机制将数据复原

    缓存穿透就是数据库中有,而缓存中没有,导致很多请求到数据库中去执行,没有经过缓存解决方法:热点数据设置存活时间为永久

    缓存击穿就是缓存中没有,数据库中也没有,用户又发起大量的请求到数据库,导致数据库承受不住,崩掉了解决方法:对请求参数进行校验

    相关文章

      网友评论

          本文标题:Redis

          本文链接:https://www.haomeiwen.com/subject/olhsmltx.html