怎么理解并掌握Redis

本篇内容介绍了“怎么理解并掌握Redis”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value键值对数据库,并提供多种语言的API

Redis的使用环境

  • 数据高并发的读写

  • 海量数据的读写

  • 对扩展性要求高的数据

Redis的功能

  • 数据缓存

  • 分布式锁

  • 支持事务

  • 支持消息队列

  • 支持数据持久化

Redis为啥是单线程

因为Redis的瓶颈最有可能是机器内存或者网络带宽,而不是CPU。既然单线程容易实现,并且CPU不是瓶颈,那么自然就使用单线程的法案,另外需要知道的是,单线程并不代表慢,node.js也是高性能单线程

缓存穿透

  • 指查询一个一定不存在的数据时,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透

  • 解决:如果一个查询返回的数据为空,把这个空结果进行缓存,但他的过期时间会很短

Redis持久化

  • RDB:指定的时间间隔能够对你的数据进行快照存储

  • AOF:每一个受到的写命令都通过write函数追加到文件中

Redis实现分布式锁

  • Redis分布式锁,其实就是在系统里面,占用一个”位置“,其他程序也要占用这个“位置”时,成功继续执行,失败只能放弃或者稍后再试

  • Redis分布式锁不能解决超时的问题,如果时间超过了锁的超时时间就会出现问题

Redis的淘汰策略

  • volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰

  • volatite-ttl:从已设置过期时间的数据集中挑选即将过期的数据淘汰

  • volatile-random:从已设置过期时间的数据集中任意选择数据淘汰

  • allkeys-lru:从数据集中选择最近最少使用的数据淘汰

  • allkeys-random:从数据集中任意选择数据淘汰

  • no-enviction:禁止驱逐数据

“怎么理解并掌握Redis”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/208980.html

(0)
上一篇 2021年12月7日
下一篇 2021年12月7日

相关推荐

发表回复

登录后才能评论