大家好,我是杰哥。Redis 现在应该是各大厂标配了,不过可能很多人只懂得怎么用,但对其原理不甚了解,今天我们就用图解的形式来深入了解 Redis 高性能,高可用的秘密什么是 Redis?Redis(REmote DIctionary Service)是一个开源的键值对数据库服务器。Redis 更准确的描述是一个数据结构服务器。Redis 的这种特殊性质让它 ......
353
0
0
2023-01-05
一、SDS介绍Redis没有使用C语言传统的字符串表示(以空字符结尾的字符串数组,以下简称C字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS作为Redis默认的字符串表示。在 Redis 里面, C字符串只会作为字符串字面量(string literal), 用在一些无须对字符串值进 ......
429
0
0
2023-01-03
Redis网络连接层Redis取自Remote Dictionary Server,顾名思义,Redis是运行在网络环境之上的。Redis目前支持3种网络连接类型:TCP:默认监听TCP 6379端口,接收网络请求,提供服务。Unix Socket:可以用作测试,以及使用Unix Socket做配置变更等。TLS:使用TLS加密的网络连接,可以防止网络链路上 ......
434
0
0
2022-12-31
Hello 大家好,我是阿粉,Redis 作为工作中不可缺少的缓存组件,相信很多小伙伴都会使用到,我们日常使用的时候都是通过代码或者客户端去链接 Redis 服务器来操作数据的。那么一条简单的set name ziyou 命令是如何执行的,中间都经历了哪些过程想必很少会有人去了解。今天阿粉就带大家看一下一条简单的set name ziyou 命令是如何执行的 ......
313
0
0
2022-12-28
今天我们讨论一下 redis 面试高频题,为什么 Redis 那么快?首先,你可以先想一下答案,我先说下大家普遍的答案:单线程基于内存操作,速度快I/O 多路复用相信很多人第一时间回答出来上面这些,那么面试官一般会接着问,所有的操作都是单线程吗?单线程为什么快呢,什么是 I/O 多路复用?很多人这个时候就会 G 了。今天我们好好聊聊,首先我们要知道,我们常说 ......
364
0
0
2022-12-23
为什么要有过期策略?因为我们的redis是一个内存型数据库,我们的数据都是放在内存里面的!但是内存是有大小的! 比如,redis有个很重要的配置文件,redis.conf,里面有个配置# maxmemory <bytes> //redis占用的最大内存 如果我们不淘汰,那么它的数据就会满,满了肯定就不能再放数据,发挥不了redis的作用! 比如 ......
304
0
0
2022-12-22
分布式锁其实就是,控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同主机之间共享了某个临界资源,往往需要互斥来防止彼此干扰,以保证一致性。 本篇内容包括:关于 Redis 与 分布式锁,Redis 分布式锁的问题及解决方式,Redis 中的 Lua 脚本 以及 Redis 中的 RedLock 算法!文章目录一、关于 Re ......
296
0
0
2022-12-20
在开发测试环境中,我们一般搭建Redis的单实例来应对开发测试需求,但是在生产环境,如果对可用性、可靠性要求较高,则需要引入Redis的集群方案。虽然现在各大云平台有提供缓存服务可以直接使用,但了解一下其背后的实现与原理总还是有些必要(比如面试), 本文就一起来学习一下Redis的几种集群方案。Redis支持三种集群方案主从复制模式Sentinel(哨兵)模 ......
347
0
0
2022-12-17
一、引言在最近的业务中,笔者接到了一个需要处理约十万条数据的需求。这些数据都以字符串的形式给到,并且处理它们的步骤是异步且耗时的(平均处理一条数据需要 25s 的时间)。如果以串行的方式实现,其耗时是相当长的:总耗时时间 = 数据量 × 单条数据处理时间 T = N * t (N = 100,000; t = 25s) 总耗时时间 = 2,500,000 秒 ......
318
0
0
2022-12-17
在一些网络服务的系统中,Redis 的性能,可能是比 MySQL 等硬盘数据库的性能更重要的课题。比如微博,把热点微博、最新的用户关系都存储在 Redis 中,大量的查询击中 Redis,而不走 MySQL。那么,针对 Redis 服务,我们能做哪些性能优化呢?或者说,应该避免哪些性能浪费呢?Redis 性能的基本面在讨论优化之前,我们需要知道,Redis ......
315
0
0
2022-12-15
Redis什么是?它有哪些优缺点?它凭什么这么快?使用Redis如何持久化?道友们!让我们深入探索一波呗!# 1.什么是RedisRedis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串, ......
398
0
0
2022-12-13
大家好,我是小林。我们都知道 Redis 提供了丰富的数据类型,常见的有五种:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)。随着 Redis 版本的更新,后面又支持了四种数据类型:BitMap(2.2 版新增)、HyperLogLog(2.8 版新增)、GEO(3.2 版新增)、Stream(5.0 版新增 ......
333
0
0
2022-12-12
作者:小林coding八股文网站:xiaolincoding.com哈喽,我是小林。今天跟大家聊聊两个问题:如何用 Redis 实现分布式锁?Redis 是如何解决集群情况下分布式锁的可靠性问题的?如何用 Redis 实现分布式锁的?分布式锁是用于分布式环境下并发控制的一种机制,用于控制某个资源在同一时刻只能被一个应用所使用。如下图所示:Redis 本身可以 ......
350
0
0
2022-12-12
什么是redis?Redis 本质上是一个 Key-Value 类型的内存数据库, 整个数据库加载在内存当中进行操作, 定期通过异步操作把数据库数据 flush 到硬盘上进行保存。因为是纯内存操作, Redis 的性能非常出色, 每秒可以处理超过 10 万次读写操作, 是已知性能最快的 Key-Value DB。Redis 的出色之处不仅仅是性能, Redi ......
309
0
0
2022-12-11
Redis 简介Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key - value 数据库Redis 与 其他 key - value 缓存产品有以下三个特点:Redis 支持数据持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis 不仅仅支持简单的 key - value 类型的数据,同时还提供 list ......
321
0
0
2022-12-11