南京北大青鸟

南京北大青鸟电话

南京北大青鸟学校南京北大青鸟 > 新闻中心 > 课程咨询 >

redis缓存原理详解(redis缓存实现原理)

发布时间:2022-02-15 17:24  发布人:南京北大青鸟  发布来源:redis缓存资讯  浏览人数:81

前言:  redis丰富的数据结构,其hash,list,set以及功能丰富的String的支持,对于实际项目中的使用有很大的帮忙。同时.redis单点的性能也非常高效,所以很多的项目都会选择redis来做为缓存应用

  redis丰富的数据结构,其hash,list,set以及功能丰富的String的支持,对于实际项目中的使用有很大的帮忙。同时.redis单点的性能也非常高效,所以很多的项目都会选择redis来做为缓存应用。
 

  1.redis缓存原理

  Redis将其数据完全保存在内存中,仅使用磁盘进行持久化。与其它键值数据存储相比,Redis有一组相对丰富的数据类型。Redis可以将数据复制到任意数量的从机中。异常快 - Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执行81000次的读取/获取(GET)操作。支持丰富的数据类型 - Redis支持开发人员常用的大多数数据类型 ,例如列表,集合,排序集和散列等等。这使得Redis很容易被用来解决各种问题,因为我们知道哪些问题可以更好使用地哪些数据类型来处理解决。操作具有原子性 - 所有Redis操作都是原子操作,这确保如果两个客户端并发访问,Redis服务器能接收更新的值。Redis是一个内存数据库,但在磁盘数据库上是持久的,因此它代表了一个不同的权衡,在这种情况下,在不能大于存储器(内存)的数据集的限制下实现非常高的写和读速度redis支持多种数据结构,Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储Redis支持master-slave(主-从)模式应用;Redis单个value的限制是1GB,memcached只能保存1MB的数据。


redis缓存原理详解
 

  2.redis缓存实现

  redis提供了三种缓存数据淘汰机制,LFU,LRU,TTL。LFU,least frequently used,即小使用频率淘汰,每个对象使用共计24bit空间用来实施这个算法,24bit分成2个部分,前16bit用来记录上次减少时间(减少的是后面8bit计数器),后面8个bit是一个对数计数器,用来记录这个对象的访问次数。需要注意的是,这个字段不是一直增加的,也需要减少,否则会出现一个情况,一个对象很久之前被频繁的使用,但是没有被使用,若这个值不减少的话,那么这个对象会一直处在一个不会被淘汰的位置。前面16bit的作用就是,记录一个“减量时间”,这是一个降低精度的Unix时间,将16bit的时间转换成分钟,不关心回绕问题。若这个时间很大,那么8bit计数器的值减半,否则只是简单的每次递减1;LRU,last recently used,即少使用淘汰,一般做法是,将hash表的value做成一个指针,指向一个双链表节点,节点中保存实际的value,双链表按照上次访问时间降序排列,当访问到一个对象之后,更新访问时间,并将这个节点移动到表头,若节点不存在就直接插入到表头。当内存门限达到的时候,从链表尾开始删除若干entry。redis为了减少内存使用,不使用双链表或其他结构管理对象,采用随机算法,每次从hash表中随机选择一些key,一般是5个,将这些key存入一个全局的池,池大小一般是16,池中entry按照上次访问时间降序排列,每次从池中选择尾部的entry,就是较差的对象,将这个对象淘汰;TTL,即生存时间,按照生存时间设置一个对象的生命周期,一个对象生命周期结束之后将其销毁。

  以上就是对于redis缓存的介绍,我们要想学会使用redis缓存还是需要大量的实战项目练习,经过不断的积累才能更加熟练。

版权声明:本文redis缓存原理详解(redis缓存实现原理): http://www.nj-test.com/kczx/1190.html 的内容、图片由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2353260942@qq.com 举报,一经查实,本站将立刻删除。(如需投稿联系管理员开通!)

相关内容:

更多人关注:

UI设计对于学员的学历有没有具体的要求   有些人想要改变自己的生活质量,就想着学点什么,可能选...
常州网页设计培训班学费多少钱?   走出校门以后,想要学点东西,学费一般都不低的,所以学...
「南京Web前端培训」这样的Web前端培训机 很多人都是因为Web前端入门简单才选择学习的,当然Web前端的发...
云计算发展历程是什么 关注计算机专业学习的时候,很多人对于云计算这个概念都是很...

抢实地试听名额

名额仅剩66名

教育改变生活

WE CHANGE LIVES

© CopyRight nj-test.com      苏ICP备2023001897号-3