
redis
文章平均质量分 88
详细介绍redis
瑾!
我是一个后端,
代码写得极端。
爱吃小熊饼干,
工资只够早餐。
展开
-
redis缓存雪崩,击穿,穿透,到底是什么?
在今天的互联网里,高并发、大数据量、大流量已经成为了代言词,那么我们的系统也承受着巨大的压力,首当其冲的解决方案就是redis。那么redis使用不当就会产生雪崩、穿透、击穿等问题,这也是考验一个程序员技术能力的时刻。当然面试的时候,这也是高频面试题,几乎大厂都会问到。下面跟着贴心老哥一起来看看这些技术吧。缓存雪崩举例双十一期间,所有用户一打开淘宝就是进入首页,首页的压力非常大,为了提高并发,将网站首页数据都缓存到redis里,所有的redis key失效时间都是3小时。双十...原创 2021-09-09 11:33:02 · 332 阅读 · 0 评论 -
【redis正传】redis淘汰+过期双向保证高可用 | 单线程如何做到快速响应
前言【redis前传】持续更新!各种穿插更新!嘿嘿嘿redis和数据相比除了他们的结构型颠覆以外!还有他们存储位置也是不相同。传统数据库将数据存储在硬盘上每次数据操作都需要IO而Redis是将数据存储在内存上的。这里稍微解释下IO是啥意思。IO就是输入流输出流方式将数据在硬盘和内存之间进行交互!而redis直接在内存上就剩下了IO操作。这也是redis快的原因之一吧内存相对于硬盘来说很宝贵。我们平时的电脑也是硬盘是内存的几百倍。既然内存很宝贵而redis又将数据存储在内存上那么red...原创 2021-07-28 15:56:27 · 183 阅读 · 0 评论 -
【redis前传】自己手写一个LRU策略
一、题目描述146. LRU 缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。 实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化LRU缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。 void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容原创 2021-07-28 10:32:35 · 160 阅读 · 0 评论 -
【redis前传】 redis五大天王值list基本数据如何成长 | 由内之外深入学习
前言在【数据结构】学习中,绕不过的就是链表和数组的学习了!数组应该更容易理解点!因为他和我们平时的逻辑一样。但是链表在刚入门的同学中应该算是比较抽象的了!尤其是指针交换位置更是容一部分同学望而却步! 今天我们来学习下Redis中的常用的链表数据结构list在Redis低版本(3.2之前)中list数据结构底层就是使用链表来进行串联数据的!上图就是Redis中在操作List数据结构时的结构图!在redis中并不是仅仅使用这一种双向的链表结构.关于ziplist等其他结构我们这里暂时...原创 2021-07-23 19:57:34 · 100 阅读 · 1 评论 -
【redis前传】redis字典快速映射+hash釜底抽薪
前言 相信你一定使用过新华字典吧!小时候不会读的字都是通过字典去查找的。在Redis中也存在相同功能叫做字典又称为符号表!是一种保存键值对的抽象数据结构 本篇仍然定位在【redis前传】系列中,因为本篇仍然是在解析redis数据结构!当你尝试去了解redis时才能明白其中原理!才能明白为什么redis被大家吹捧速度快,而不是被告知redis很快! 应用场景在Redis中有很多场景都是用了字典作为底层数据结构!我们使用最多的应该是redis的库的设置和五种基本数据类型的Has...原创 2021-07-22 11:04:09 · 173 阅读 · 0 评论 -
【redis前传】zset如何解决内部链表查找效率低下|跳表构建
zset作为有序集合,内部基于跳表或者说索引的方式实现了数据的快速查找。解决了链表查询效率低下的痛点前言紧接前文我们学习了Redis中Hash结构。在里面我们梳理了字典这个重要的内部结构并分析了hash结构rehash的流程从而解释了为什么redis单线程还是那么快 本章节我们将视角下推,继续学习Redis五大天王中的zset数据结构 ; zset是有序不重复集合其内部元素唯一且是有序的,他的排序标准是根据其内部score维度进行排序的。zset结构基本单元关于zset...原创 2021-07-21 20:58:16 · 483 阅读 · 1 评论 -
关于redis主从|哨兵|集群模式
关于redis主从、哨兵、集群的介绍网上很多,这里就不赘述了。一、主从通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据。。但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘故障等问题,也会导致数据丢失。为了避免单点故障,通常的做法是将数据库复制多个副本以部署在不同的服务器上,这样即使有一台服务器出现故障,其他服务器依然可以继续提供服务。为此, Redis 提供了复制(replication)功能原创 2021-06-23 09:41:07 · 143 阅读 · 0 评论 -
Redis基本概念和作用
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value...原创 2021-07-21 17:05:01 · 3975 阅读 · 2 评论 -
【redis前传】为什么set底层hashtable+intset两种数据结构 | 超出长度升级解决
redis的整数集是什么?当我们想set集合中添加整数时内部又是什么结构?整数集默认是多少范围?超出了范围的数据是如何存储的?删除最长元素后会不会发生降级的变化? 今天,我们就来对整数集一探究竟为什么整数集升级后不能在进行降级操作 | intset位升级频率前言整数集合相信有的同学没有听说过,因为redis对外提供的只有封装的五大对象!而我们本系列主旨是学习redis内部结构。内部结构是redis五大结构重要支撑!前面我们分别从redis内部结构分析了redis的List...原创 2021-07-21 19:07:56 · 563 阅读 · 1 评论