Redis 内存满了怎么办?答案是走内存淘汰机制 如果过期的数据太多,定时删除无法删除完全(每次删除完过期的 key 还是超过 25%),同时这些 key 再也不会被客户端请求,就无法走惰性删除,内存被打满会怎样? 答案是走内存淘汰机制。 故事从一个叫 Redis 帝国的三公九卿官职说起…… 在 Redis 帝国中,整个帝国的国法、家法和军法等都记录在 redis.conf中,它控制着整个帝国的运行。 公务员占用的国家地盘资源大小限定由名叫「ma 数据运维 2023-07-11 共饮一杯
Redis都有哪些使用场景?收好面试时派上大用场! Redis作为一种内存型的非关系型的数据库,不管在互联网大厂,小厂,大项目和小项目中,几乎都会被使用。为什么Redis会受到如此青睐呢?关于这个问题,可能很多的程序员只是看着别人用而用,缺乏对Redis一个全面的了解。 Redis使用场景 缓存 缓存现在几乎是所有中大型网站都在用的必杀技,合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的压力。Redis提供了键过期功能,也提供了灵活的键 数据运维 2023-07-11 大白菜程序猿
Redis 与 MySQL 数据一致性问题:探索缓存工作机制和缓存一致性应对方案 Redis 拥有高性能的数据读写功能,被我们广泛用在缓存场景,一是能提高业务系统的性能,二是为数据库抵挡了高并发的流量请求。 Redis 作为缓存组件,需要防止出现以下的一些问题,否则可能会造成生产事故。 Redis 缓存满了怎么办? 缓存穿透、缓存击穿、缓存雪崩如何解决? Redis 数据过期了会被立马删除么? Redis 突然变慢了如何做性能排查并解决? Redis 与 MySQL 数据一致性 数据运维 2023-07-11 贤蛋大眼萌
redis 菜鸟学习: 字典(map) 及其核心编码结构 redis 是使用 C 语言编写的,但是 C 语言是没有字典这个数据结构的,因此 C 语言自己使用结构体来自定义一个字典结构 typedef struct redisDb srcserver.h 中的 redis 数据库 数据结构 /* Redis database representation. There are multiple databases identified * by integ 数据运维 2023-07-11 剑圣无痕
什么是 Redis?图解深入了解 Redis 高性能、高可用的秘密 单个 Redis 实例 Redis 高可用性 Redis 哨兵 Redis 集群 根据你的用例和规模,决定使用哪一种设置。 单个 Redis 实例 单个 Redis 实例是最直接的 Redis 部署方式。它允许用户设置和运行小型实例,从而帮助他们快速发展和加速服务。但是,这种部署并非没有缺点。例如,如果此实例失败或不可用,则所有客户端对 Redis 的调用都将失败,从而降低系统的整体性能和速度。 数据运维 2023-07-11 法医
Redis 过期 key 处理、内存回收,确实牛逼! 1. 过期 key 处理 Redis 之所以性能强,最主要的原因就是基于内存存储。然而单节点的 Redis 其内存大小不宜过大,会影响持久化或主从同步性能。 我们可以通过修改配置文件来设置 Redis 的最大内存: maxmemory 1gb 当内存使用达到上限时,就无法存储更多数据了。为了解决这个问题,Redis 提供了一些策略实现内存回收: 先要了解的是:redis 是一个存储键值数据库系统, 数据运维 2023-07-11 张二河
Redis 缓存主要异常及解决方案 作者:京东物流 陈昌浩 1 导读 Redis 是当前最流行的 NoSQL 数据库。Redis 主要用来做缓存使用,在提高数据查询效率、保护数据库等方面起到了关键性的作用,很大程度上提高系统的性能。当然在使用过程中,也会出现一些异常情景,导致 Redis 失去缓存作用。 2 异常类型 异常主要有 缓存雪崩 缓存穿透 缓存击穿。 2.1 缓存雪崩 2.1.1 现象 缓存雪崩是指大量请求在缓存中没有查到 数据运维 2023-07-10 大树
Redis是什么?使用场景有哪些?Redis7.0安装教程 从2022年1月31开始,官方就发布了 Redis7.0-rc1,至今已经发布到 7.0.5 版本。很多的开发者,还对Redis认识停留在5.x的版本或者6.x的版本,对Redis7.0还缺乏较少的认识。本系列教程,将带领大家完整的学习Redis7.0相关的知识点。从环境的搭建、10大数据类型、事务、发布订阅、主从复制、哨兵、集群等等知识。本教程最大的特点是,不会单纯的总结一些枯燥乏味的理论知识, 数据运维 2023-07-10 竹子爱熊猫
教会你搭建Redis集群和MySQL主从同步(非Docker) 什么是Redis集群 简介 Redis是一个快速高效的NoSQL型数据库,由于其基于内存存储、单线程、多路IO复用的特性,其QPS可以达到惊人的100000+(官方数据),但是即使有这么高的速度,在中国这么大的网民基数环境下,也存在着性能瓶颈。 首先抛开服务器故障不谈,Redis集群首先可以使Redis性能得到线性提高,这是毋庸置疑的,其次Redis集群除了解决了效率问题,还可以解决服务器宕机造成 系统运维 2023-07-10 泡泡
民工哥死磕Redis教程(一):基础理论与安装配置 Nosql 数据库介绍 是一种非关系型数据库服务,它能解决常规数据库的并发能力,比如传统的数据库的IO与性能的瓶颈,同样它是关系型数据库的一个补充,有着比较好的高效率与高性能。专注于key-value查询的redis、memcached、ttserver。解决以下问题: 对数据库的高并发读写需求 大数据的高效存储和访问需求 高可扩展性和高可用性的需求 Redis知识体系 什么是 Redis Red 数据运维 2023-07-10 醒在深海的猫
民工哥死磕Redis教程(二):9 种数据类型和应用场景 Redis 数据结构简介 Redis 基础文章非常多,关于基础数据结构类型,我推荐你先看下官方网站内容,然后再看下面的小结。 首先对 redis 来说,所有的 key(键)都是字符串。我们在谈基础数据结构时,讨论的是存储值的数据类型,主要包括常见的5种数据类型,分别是:String、List、Set、Zset、Hash。 5 种基础数据类型 内容其实比较简单,我觉得理解的重点在于这个结构怎么用,能 数据运维 2023-07-10 张二河
民工哥死磕Redis教程(三):常用管理命令 给大家提供 redis 开发过程当中经常会用到的一些命令,供大家参考! redis set key Redis SET 命令用于给键(key)设置值的。如果 key 已经存储其他值,SET 就覆写旧值。 语法结构如下: set keyname 值 返回值:设置成功时,返回OK。 实例: set freekey free; 结果: redis get Redis get命令用于获取键(key)中的值 数据运维 2023-07-10 捡田螺的小男孩
民工哥死磕Redis教程(六):事务详解 什么是Redis事务 Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。 总结说:redis 事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。 Redis事务相关命令和使用 MULTI、EXEC、DISCARD 和 WATCH 是 Re 数据运维 2023-07-10 张二河
民工哥死磕Redis教程(七):持久化(RDB和AOF) 面试和工作,持久化都是重点。 Redis 持久化介绍 为了防止数据丢失以及服务重启时能够恢复数据,Redis支持数据的持久化,主要分为两种方式,分别是RDB和AOF; 当然实际场景下还会使用这两种的混合模式。 为什么需要持久化? Redis是个基于内存的数据库。那服务一旦宕机,内存中的数据将全部丢失。通常的解决方案是从后端数据库恢复这些数据,但后端数据库有性能瓶颈,如果是大数据量的恢复: 1、会对 数据运维 2023-07-10 泡泡
民工哥死磕Redis教程(八):主从复制及数据恢复实践 概念 主从复制,是指将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称之为主节点(master/leader),后者称之为从节点(slave/flower);数据的复制都是单向的,只能从主节点到从节点。Master 以写为主,Slave 以读为主。 默认情况下,每台 Redis 服务器都是主节点。且一个主节点可以有多个从节点或者没有从节点,但是一个从节点只能有一个主节点。 数据运维 2023-07-10 宇宙之一粟
民工哥死磕Redis教程(九):sentinel 哨兵集群原理、部署及数据恢复 主从复制的基础上,如果主节点出现故障该怎么办呢?在 Redis 主从集群中,哨兵机制是实现主从库自动切换的关键机制,它有效地解决了主从复制模式下故障转移的问题。 哨兵机制(Redis Sentinel) Redis Sentinel,即 Redis 哨兵,在 Redis 2.8 版本开始引入。哨兵的核心功能是主节点的自动故障转移。 下图是一个典型的哨兵集群监控的逻辑图: 哨兵实现了什么功能呢? 下 数据运维 2023-07-10 泡泡
民工哥死磕Redis教程(十):Cluster 集群分片技术 介绍了主从复制和哨兵机制保障了高可用,就读写分离而言虽然 slave 节点扩展了主从的读并发能力,但是写能力和存储能力是无法进行扩展,就只能是 master 节点能够承载的上限。 今天我将详细的为大家介绍 Redis Cluster集群分片技术相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!! 如果面对海量数据那么必然需要构建master(主节点分片)之间的集群,同时必然需 数据运维 2023-07-10 Escape
民工哥死磕Redis教程(十一): Cluster 交叉复制与故障切换实战 cluster 集群架构图 通过hash分配数据分片到不同的redis主机。在应用端配置redis cluster地址时需要将所有节点的ip和端口都添加上。 使用cluster集群创建的key,在哪个节点上创建的只能是自身节点可以查到数据,其他节点看不到。 redis cluster不合理的架构图 不太合理的架构图 cluster集群每个机器上都有多个master和slave,如果master节点 数据运维 2023-07-10 剑圣无痕
民工哥死磕Redis教程(十二): 使用官方工具redistrib.rb自动部署 Cluster 集群实践 手动搭建集群便于理解集群创建的流程和细节,不过手动搭建集群需要很多步骤,当集群节点众多时,必然会加大搭建集群的复杂度和运维成本,因此官方提供了 redis-trib.rb 的工具方便我们快速搭建集群。 redis-trib.rb是采用 Ruby 实现的 redis 集群管理工具,内部通过 Cluster相关命令帮我们简化集群创建、检查、槽迁移和均衡等常见运维操作,使用前要安装 ruby 依赖环境。 数据运维 2023-07-10 泡泡
民工哥死磕Redis教程(十三): Cluster 集群扩容原理与实践 Cluster 集群扩容概念 当redis数据量日渐增长,当内存不够用的时候,这时候就需要集群扩容了,cluster集群扩容可以增加内存也可以增加节点,因为redis数据都是存在内存中。 redis cluster增加节点进行扩容步骤: 1.在新的服务器上部署redis cluster 2.使用工具将新部署的节点加到集群中 3.使用工具将集群槽位重新分配 4.将主从复制关系调整成交叉模式 扩容原理 数据运维 2023-07-10 共饮一杯