文章分类 - Redis
1
摘要:一、Redis源码 Redis源码官方对于源码说明参考:https://github.com/redis/redis,查看源码,在解压打开压缩包,在src目录下,都是通过C语言实现的: 官网对于上述源码实现功能的说明: 对于上述的源码实现做了分类如下: 1).基本结构说明: Redis对象objec
阅读全文
摘要:一、redis缓存常见问题说明 生产环境上你们的redis内存设置多少? 如何配置、修改redis的内存大小如果内存满了你怎么办 redis清理内存的方式?定期删除和惰性删除了解过吗redis缓存淘汰策略有哪些?分别是什么?你用那个? redis的LRU了解过吗?请手写LRU算法? LRU和LFU算
阅读全文
摘要:一、Redlock 红锁算法 1.1.Redlock官网说明 官网地址:https://redis.io/docs/manual/patterns/distributed-locks/,截图如下: 不同语言直接对于redlock 的实现,Java使用Redission来实现 1.2.Redlock解
阅读全文
摘要:一、锁的种类 常见的锁有两个种类: 单机版同一个JVM虚拟机内,synchronized或者Lock接口 分布式多个不同JVM虚拟机,单机的线程锁机制不再起作用,资源类在不同的服务器之间共享了。 二、分布式锁具备的特点 实现的分布式锁,需要具备一下特征: 特点 描述 独占性 任何时刻有且只有一个线程
阅读全文
摘要:一、缓存预热 1.1.缓存预热是什么? 缓存预热指的是系统上线后,提前将相关的缓存数据直接加载到缓存系统例如redis中。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题,用户直接查询事先被预热的缓存数据即可。 1.2.缓存预热如何解决? 使用 @PostConstruct 初始化白名单数
阅读全文
摘要:一、日常问题说明 在项目开发的时候,会遇到如下问题: 现有1亿个电话号码,如何要快速准确的判断这些电话号是否存在?面试时会问布隆过滤器了解过吗? 安全连接网址,全球数10亿的网址判断黑名单校验,识别垃圾邮件怎么解决? 白名单校验,识别出合法用户进行后续处理 二、布隆过滤器 布隆过滤器(Bloom F
阅读全文
摘要:一、生产环境下需要解决的问题 在生产环境中常常无论是面试还是实际工作都会遇到如下问题: 如何统计签到信息?,用户在手机App上的签到打卡,1天内对应1系列用户的签到记录,例如:新浪微博、钉钉打卡 某个应用网站上的网页访问信息如何统计,例如淘宝首页1个网页对应1系列的访问点击,每天有多少人浏览首页?
阅读全文
摘要:一、问题的引入 在redis面试的时候,一般会遇到如下问题: 只要使用了缓存,就会涉及到redis缓存和数据库双存储双写,只要是双写,就一定有数据一致性的问题,那么针对数据一致性的问题如何解决; 双写一致性在实施的时候是先动缓存,还是MySQL数据库,哪一个? 在生产中遇到这么一种情况,微服务查询r
阅读全文
摘要:一、BigKey的常见面试题 在redis面试的时候,经常会遇到如下问题: 怎么在海量数据中查询某一固定前缀的key? 如何生产上限制危险命令的使用? MEMORY USAGE 命令你用过吗 多大算big,如何发现?如何删除?如何处理? BigKey调优?lazyfree? 数据库有1000w记录,
阅读全文
摘要:一、Redis为什么使用单线程? 1.1.这种问法其实并不严谨,Redis的版本很多比如3.x、4.x、6.x,版本不同架构是不同的,不限定版本问是否单线程也不太严谨 版本3.x ,最早版本,也就是大家口口相传的redis是单线程 版本4.x,严格意义来说也不是单线程,而是负责处理客户端请求的线程是
阅读全文
摘要:Java使用Redis有三种技术分别是:Jedis、lettuce和RedisTemplate,其中目前主流的是RedisTemplate,其它两个面临被淘汰 一、Jedis Jedis是Redis官方推荐的Java连接开发工具,创建springboot项目,直接导入 maven 坐标,如下pom.
阅读全文
摘要:一、Redis cluster集群介绍 在生产环境由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分,这就是Redis的集群,其作用是提供在多个Redis节点间共享数据的程序集。官网参数地址如下:https://redis
阅读全文
摘要:一、Sentinel哨兵 在 Redis 主从复制模式中,因为系统本身不具备自动恢复的功能,所以当主服务器(master)宕机后,需要手动把一台从服务器(slave)切换为主服务器。在这个过程中,不仅需要人为干预,而且还会造成一段时间内服务器处于不可用状态,同时数据安全性也得不到保障,因此主从模式的
阅读全文
摘要:一、Redis replication复制模式是什么? 在软件的架构中,主从模式(Master-Slave)是使用较多的一种架构。主(Master)和从(Slave)分别部署在不同的服务器上,当主节点服务器写入数据时,同时也会将数据同步至从节点服务器,通常情况下,主节点负责写入数据,而从节点负责读取
阅读全文
摘要:一、Redis PubSub发布订阅是什么? Redis PubSub 又称发布订阅者模式,是一种消息传递系统,实现了消息多播功能。发布者(即发送方)发送消息,订阅者(即接收方)接收消息,而用来传递消息的链路则被称为 channel(频道)。在 Redis 中,一个客户端可以订阅任意数量的 chan
阅读全文
摘要:一、为什么需要Pipeline Redis 服务器是以单线程的方式来处理客户端的网络 IO 请求的。如果每执行一次请求都要创建和断开一次连接,就会消耗过多的时间,导致执行效率降低。因此 Redis 提供了 Pipeline(管道技术),使用该技术可以一次性向服务器发送多条命令,并返回多个执行结果。这
阅读全文
摘要:一、Redis事务 redis事务是可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞。参考网址:https://redis.io/docs/manual/transactions/ Redis 事务可以一次执行多个命令, 并
阅读全文
摘要:一、redis持久化说明 Redis 是一款基于内存的非关系型数据库,其是将数据全部存储在内存中。但是如果 Redis 服务器出现某些意外情况,比如宕机或者断电等,那么内存中的数据就会全部丢失。因此必须有一种机制能够保证 Redis 储存的数据不会因故障而丢失,这就是 Redis 的数据持久化机制。
阅读全文
摘要:一、数据类型 Redis 是 Key-Value 类型缓存型数据库,Redis 为了存储不同类型的数据,提供了10种常用数据类型(参考网址:https://redis.io/docs/data-types/),如下所示: 二、Redis 键(key) 下表给出了与 Redis 键相关的基本命令: 1
阅读全文
摘要:一、Redis是什么 Redis 全称Remote Dictionary Server(远程字典服务),是完全开源的,使用ANSI C语言编写遵守BSD协议,是一个高性能的Key-Value数据库提供了丰富的数据结构,例如String、Hash、List、Set、SortedSet等等。数据是存在内
阅读全文
1