lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Redis

摘要:《玩转Redis》系列文章主要讲述Redis的基础及中高级应用。本文是《玩转Redis》系列第【11】篇,最新系列文章请前往公众号“zxiaofan”查看,或百度搜索“玩转Redis zxiaofan”即可。 往期精选:《玩转Redis-HyperLogLog原理探索》 本文关键字:玩转Redis、 阅读全文
posted @ 2021-05-12 13:45 白露~ 阅读(1311) 评论(0) 推荐(0) 编辑

摘要:如何查看一个东西是否在有大量数据的池子里面? Bloom Filter(布隆过滤器)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素 阅读全文
posted @ 2021-05-12 13:32 白露~ 阅读(767) 评论(0) 推荐(0) 编辑

摘要:流程图: 1. 代码 1 import java.util.ArrayList; 2 3 public class LRUCache { 4 private int cacheMaxSize = 0; 5 private ArrayList<Integer> pages = null; // Int 阅读全文
posted @ 2021-04-07 15:15 白露~ 阅读(237) 评论(0) 推荐(0) 编辑

摘要:AOF 重写 AOF 持久化是通过保存被执行的写命令来记录数据库状态的,所以AOF文件的大小随着时间的流逝一定会越来越大;影响包括但不限于:对于Redis服务器,计算机的存储压力;AOF还原出数据库状态的时间增加;为了解决AOF文件体积膨胀的问题,Redis提供了AOF重写功能:Redis服务器可以 阅读全文
posted @ 2021-04-03 17:22 白露~ 阅读(1013) 评论(0) 推荐(0) 编辑

摘要:本文的面试题如下:Redis 持久化机制缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题热点数据和冷数据是什么Memcache与Redis的区别都有哪些?单线程的redis为什么这么快redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构redis的过期策略以及内存淘汰机制【~ 阅读全文
posted @ 2020-12-08 15:27 白露~ 阅读(512) 评论(0) 推荐(0) 编辑

摘要:上一篇说负载均衡的时候,提到redis是用一致性hash算法,但是有网友指出redis是用hash slot算法的,学业未精的我,又去学习一番。 redis cluster 有固定的 16384 个 hash slot,对每个 key 计算 CRC16 值,然后对 16384 取模,可以获取 key 阅读全文
posted @ 2020-12-05 14:29 白露~ 阅读(308) 评论(0) 推荐(0) 编辑

摘要:redis cluster集群通过分片的方式来保存数据库中键值对:集群的整个数据库被分为16384个槽(slot), 数据库中的每个键都属于这16384个槽的其中一个,集群中的每个节点可以处理0个或者最多16384个槽 当数据库中的16384个槽都有节点在处理时,集群处于上线状态(ok);相反地,如 阅读全文
posted @ 2020-12-05 14:22 白露~ 阅读(227) 评论(0) 推荐(0) 编辑

摘要:redis 内部使用文件事件处理器 file event handler,这个文件事件处理器是单线程的,所以 redis 才叫做单线程的模型。 它采用 IO 多路复用机制同时监听多个 socket,根据 socket 上的事件来选择对应的事件处理器进行处理。 Redis基于Reactor模式开发了自 阅读全文
posted @ 2020-12-04 20:21 白露~ 阅读(152) 评论(0) 推荐(0) 编辑

摘要:写在前面 本学习教程所有示例代码见GitHub:https://github.com/selfconzrr/Redis_Learning Redis 的 pipeline(管道)功能在命令行中没有,但 redis 是支持 pipeline 的,而且在各个语言版的 client 中都有相应的实现。 由 阅读全文
posted @ 2020-12-04 19:20 白露~ 阅读(472) 评论(0) 推荐(0) 编辑

摘要:一、pipeline出现的背景: redis客户端执行一条命令分4个过程: 发送命令-〉命令排队-〉命令执行-〉返回结果 这个过程称为Round trip time(简称RTT, 往返时间),mget mset有效节约了RTT,但大部分命令(如hgetall,并没有mhgetall)不支持批量操作, 阅读全文
posted @ 2020-12-04 19:11 白露~ 阅读(17302) 评论(0) 推荐(1) 编辑

摘要:一、读写过程 1、读:(1)先读cache,如果数据命中则返回(2)如果数据未命中则读db(3)将db中读取出来的数据入缓存2、写:(1)先淘汰cache(2)再写db 二、数据不一致原因 先操作缓存,在写数据库成功之前,如果有读请求发生,可能导致旧数据入缓存,引发数据不一致。 在分布式环境下,数据 阅读全文
posted @ 2020-12-04 13:51 白露~ 阅读(1768) 评论(0) 推荐(0) 编辑

摘要:前言 正文 上几期吊打系列我们提到了Redis的很多知识,还没看的小伙伴可以回顾一下 《吊打面试官》系列-Redis基础 《吊打面试官》系列-缓存雪崩、击穿、穿透 《吊打面试官》系列-Redis哨兵、持久化、主从、手撕LRU 那提到Redis我相信各位在面试,或者实际开发过程中对基本类型的使用场景, 阅读全文
posted @ 2020-12-04 12:24 白露~ 阅读(226) 评论(0) 推荐(0) 编辑

摘要:这一篇是我重写的,之前写过一篇发现面试的时候问的问题虽然大概能解决,但是有几个点没有整理到位,所以自己给自己列出了很多面试常见的问题,准备一篇一篇去解决。本文整体思路是延续之前的那篇文章,在此基础之上添加了几个点而已。 布隆过滤器主要是在redis中问的比较多,因此像这种数据结构类的,主要是考原理以 阅读全文
posted @ 2020-12-03 19:41 白露~ 阅读(1378) 评论(0) 推荐(0) 编辑

摘要:布隆过滤器 在讲述布隆过滤器的原理之前,我们先思考一个问题,如果想要判断一个元素是否存在,你通常会怎么做?一般的做法都是将其保存起来然后通过比较确认,一共会有如下几种情况: 如果使用线性表或者数组存储,则查找的时间复杂度为 O(n)。 如果使用树存储,则查找的时间复杂 度为 O(logn)。 如果使 阅读全文
posted @ 2020-12-03 19:28 白露~ 阅读(366) 评论(0) 推荐(0) 编辑

摘要:一、应用场景 网页爬虫对 URL 去重,避免爬取相同的 URL 地址; 反垃圾邮件,从数十亿个垃圾邮件列表中判断某邮箱是否垃圾邮箱; Google Chrome 使用布隆过滤器识别恶意 URL; Medium 使用布隆过滤器避免推荐给用户已经读过的文章; Google BigTable,Apache 阅读全文
posted @ 2020-12-03 19:21 白露~ 阅读(451) 评论(0) 推荐(0) 编辑

摘要:介绍 我们以演进的方式来逐渐认识布隆过滤器。先抛出一个问题爬虫系统中URL是怎么判重的?你可能最先想到的是将URL放到一个set中,但是当数据很多的时候,放在set中是不现实的。 这时你就可能想到用数组+hash函数来实现了。 index = hash(URL) % table.length 即求出 阅读全文
posted @ 2020-12-03 19:12 白露~ 阅读(788) 评论(0) 推荐(0) 编辑

摘要:一、关于 redis key: 1、是二进制安全的,也就是说,你可以使用任何形式的二进制序列来作为key,比如一个string,或者一个jpg图片的数据,需要说明的是,空字符串也是一个有效的key。 2、不建议使用过长的key,影响内存占用及数据查性能,对于过长的key,可以通过hash(例如SHA 阅读全文
posted @ 2020-12-03 14:40 白露~ 阅读(208) 评论(0) 推荐(0) 编辑

摘要:1、什么是SDS? Redis 自定的字符串存储结构,关于redis,你需要了解的几点!中我们对此有过简要说明。 Redis 底层是用C语言编写的,可是在字符存储上,并未使用C原生的String类型,而是定义了自己的字符串结构 Simple Dynamic Stirng,简称SDS。 SDS基本结构 阅读全文
posted @ 2020-12-03 14:37 白露~ 阅读(148) 评论(0) 推荐(0) 编辑

摘要:前言: 阅读 redis设计与实现 一书的记录。未完待续。。。 redis我们都知道有5种数据类型,分别是string,list,hash,set,zset,那么你知道它们的底层数据结构实现吗? redis底层有6种数据结构,分别是简单动态字符串(SDS),链表,字典,跳跃表,整数集合,压缩列表。 阅读全文
posted @ 2020-12-03 14:34 白露~ 阅读(892) 评论(0) 推荐(0) 编辑